Вопрос по С#!
Скажите как обращаться к конкретным обьектам в созданном массиве обектов?
Ну например, создал я 9 PictureBox'в (PB = new PictureBox[9].
Далее обрабатываю событие методом private void PB_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e){}
А вот как в этом методе в каком PictureBox'е произошло событие не понятно, то ли в PB[3], то ли в PB[5] — не понятно .
Как сделать так чтобы метод понимал с каким именно PB он имеет дело?
Здравствуйте, Andy77, Вы писали:
A>... EL>>Как сделать так чтобы метод понимал с каким именно PB он имеет дело?
A>PB_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e){}
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, ExtraLamer, Вы писали:
EL>>И что делать с этим sender'ом ?
VD>Приводить к нужному типу и пользоваться.
Ну я привёл к String, C# говорит что это PictureBox и что Size Normal ... А мне нужно его Index в массиве! Как его получить в Sendere?
НУ кто нить напишите эту строчку кода!!! Чтоб было понятно!
Здравствуйте, ExtraLamer, Вы писали:
EL>Ну я привёл к String, C# говорит что это PictureBox и что Size Normal ... А мне нужно его Index в массиве! Как его получить в Sendere?
EL>НУ кто нить напишите эту строчку кода!!! Чтоб было понятно!
Здравствуйте, Oleg_Gashev, Вы писали:
OG>Console.WriteLine(((PictureBox)sender).Name);
но у меня масив PictureBox'в, это не работает.
Это тоже не работает => this.Text = Convert.ToString(((PB)sender).GetEnumerator); говорит что 'Form1.PB' denotes a 'field' where a 'class' was expected
Здравствуйте, ExtraLamer, Вы писали:
EL>Ну я привёл к String, C# говорит что это PictureBox и что Size Normal ... А мне нужно его Index в массиве! Как его получить в Sendere?
EL>НУ кто нить напишите эту строчку кода!!! Чтоб было понятно!
int idx;
for (idx = 0; idx < PB.Length; idx++)
if (PB[i] == sender) break;
Здравствуйте, Andy77, Вы писали:
A>Здравствуйте, ExtraLamer, Вы писали:
EL>>Ну я привёл к String, C# говорит что это PictureBox и что Size Normal ... А мне нужно его Index в массиве! Как его получить в Sendere?
EL>>НУ кто нить напишите эту строчку кода!!! Чтоб было понятно!
A>
A> int idx;
A> for (idx = 0; idx < PB.Length; idx++)
A> if (PB[i] == sender) break;
A>
Большое СПАСИБООО!!!!
Правда в обработке события мыши гораздо лучше наверно. а то 1000 PictureBox'в запарно будет переберать.
int X;
if (PB[X] == sender) {}
Не знал что sender автоматтически приводится к int. Спасибо!
Здравствуйте, ExtraLamer, Вы писали:
EL>Ну я привёл к String, C# говорит что это PictureBox и что Size Normal ... А мне нужно его Index в массиве! Как его получить в Sendere?
EL>НУ кто нить напишите эту строчку кода!!! Чтоб было понятно!
Здравствуйте, ExtraLamer, Вы писали:
EL>Большое СПАСИБООО!!!! EL>Правда в обработке события мыши гораздо лучше наверно. а то 1000 PictureBox'в запарно будет переберать.
Тебе и не нужно ничего перебирать, sender — это и есть экземпляр PictureBox — именно того, который послал событие. Для того, чтобы обращаться с ним по всей строгости военного времени :), просто приведи его к нужному тебе типу —
A> int idx;
A> for (idx = 0; idx < PB.Length; idx++)
A> if (PB[i] == sender) break;
A>
Вообще-то у массивов поиск есть (indexOf). А если подумать, то в таких случаях вместо массива нужно использовать HashTable или хотя бы отсортировать массив и искать бинарисерчем.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ExtraLamer, Вы писали:
OG>>Console.WriteLine(((PictureBox)sender).Name);
EL>но у меня масив PictureBox'в, это не работает.
EL>Это тоже не работает => this.Text = Convert.ToString(((PB)sender).GetEnumerator); говорит что 'Form1.PB' denotes a 'field' where a 'class' was expected
Где у тебя этот массив?
sender это что ли массив? Ну тогда приводи его к массиву. Ту уж обясни полностю что у тебя и как...
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Вообще-то у массивов поиск есть (indexOf). А если подумать, то в таких случаях вместо массива нужно использовать HashTable или хотя бы отсортировать массив и искать бинарисерчем.
Зато наглядно... иначе пришлось бы объяснять про массив, который на самом деле является объектом :) ... пассаж про методы поиска, думаю, тут тоже не особо уместен — искать бинарисерчем в new PictureBox[9]??? :))) а если думать дальше, то нефиг 1000 PictureBox'ов ставить... да и все мы умрём когда-то, какая разница кто как пишет :)