Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Проблема с ошибкой Добавлено: 28.01.09 22:06  

Автор вопроса:  DLF
На форме находится один PictureBox и ImageList. При наведении курсора мыши меняется картинка (две картинки находятся в ImageList-е с индексом 0 и 1). При нажатии кнопки мыши происходит выход.
Проблема с ошибкой, которая появляется при выходе:
InvalidArgument=Значение '1' недопустимо для 'index'. Имя параметра: index
Подскажите способ избавиться от ошибки.

Public Class Form1

    Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
        PictureBox1.Image = ImageList1.Images(0)
    End Sub

    Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
        PictureBox1.Image = ImageList1.Images(1)
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
        Application.Exit()
    End Sub

End Class




Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 29.01.09 20:51
попробуй чо-нить типа
if ImageList1.Images.count <> 0 then PictureBox1.Image = ImageList1.Images(1)

Ответить

Номер ответа: 2
Автор ответа:
 DLF



Вопросов: 9
Ответов: 53
 Профиль | | #2 Добавлено: 29.01.09 22:51
Не подходит. Может что-нибудь есть "универсальнее"?

Ответить

Номер ответа: 3
Автор ответа:
 el-paso



Вопросов: 3
Ответов: 164
 Профиль | | #3 Добавлено: 30.01.09 00:11
Попробуй:
  1.  
  2. PictureBox1.Image = ImageList1.Images("0")

Ответить

Номер ответа: 4
Автор ответа:
 DLF



Вопросов: 9
Ответов: 53
 Профиль | | #4 Добавлено: 30.01.09 10:14
Ошибку всегда выдает при событии Mouseleave и не зависит
какой индекс указывается. Такое впечатление, что при выходе
очищается ImageList, а потом происходит событие Mouseleave.

Ответить

Номер ответа: 5
Автор ответа:
 DLF



Вопросов: 9
Ответов: 53
 Профиль | | #5 Добавлено: 31.01.09 21:20
Неужели нет способа избавиться от ошибки?
Знатоки, где же вы!!!

Ответить

Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 31.01.09 22:37
где то ты накосячил.. я только что все проверил - все ОК
а почему ты используешь ImageList? какие то особые требования?

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 31.01.09 22:56
и еще хотелосьбы взглянуть на описание твоей ошибки...
потому как этот код работает на ура.. проверил раз 300 )))

  1.  
  2. using System;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using Eros.Hosts.Properties;
  6.  
  7. namespace Eros.Hosts.Forms
  8. {
  9.     public partial class Form1 : Form
  10.     {
  11.         ImageList list = null;
  12.  
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.  
  17.             /* create & init ImageList */
  18.             list = new ImageList();
  19.             list.ImageSize = new Size(48, 48);
  20.             list.ColorDepth = ColorDepth.Depth32Bit;
  21.             /* add two image */
  22.             list.Images.Add(Resources.cup);
  23.             list.Images.Add(Resources.debug);
  24.  
  25.             pictureBox1.Image = list.Images[1];
  26.         }
  27.  
  28.         private void pictureBox1_MouseEnter(object sender, EventArgs e)
  29.         {
  30.             pictureBox1.Image = list.Images[0];
  31.         }
  32.  
  33.         private void pictureBox1_MouseLeave(object sender, EventArgs e)
  34.         {
  35.             pictureBox1.Image = list.Images[1];
  36.         }
  37.  
  38.         private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
  39.         {
  40.             this.Close();
  41.         }
  42.     }
  43. }

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 01.02.09 11:29
Ошибка судя по всему в том что в коллекции ImageList.Images меньше двух элементов. Почему - вопрос на который ответить объективно исходя из предоставленых данных нельзя.

Ответить

Номер ответа: 9
Автор ответа:
 DLF



Вопросов: 9
Ответов: 53
 Профиль | | #9 Добавлено: 18.02.09 23:50
Спасибо всем за внимание. Выход нашел. Перед закрытием программы делаю PictureBox.Dispose()

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам