0 / 0 / 1
Регистрация: 14.05.2014
Сообщений: 4
|
||||||
1 | ||||||
Нужно вывести адресс того элемента,на которуй нажал пользователь14.05.2014, 07:38. Показов 1609. Ответов 8
Метки нет (Все метки)
Мне нужно вывести значение j той PictureBox, которую нажал пользователь. Но после нажатия в lablebox всегда заноситься значение 8. Не понимаю, в чем тут проблема. Я новичек.
0
|
14.05.2014, 07:38 | |
Ответы с готовыми решениями:
8
Вывести все элементы массива, которые больше того элемента, индекс которого вводит пользователь Проверка : нажал ли пользователь клавишу Вывести ссылку в зависимости того авторизованн ли пользователь Checkbox нажал пользователь или алгоритм? |
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
14.05.2014, 09:30 | 2 |
misha007, данная проблема возникла из-за недопонимания принципов работы с областью видимости переменных в C#. Вам нужно перечитать информацию по этому поводу, чтобы устранить пробелы в знаниях. У вас в label1 сохраняется значение переменной j, которое в ней находится на момент выполнения этого присваивания (клик по PictureBox'у), а не на момент добавления обработчика к событию Click.
Чтобы было понятнее. У вас открывается форма, выполняется обработчик события Load, где в цикле всем событиям Click всех PictureBox'ов присваивается обработчик. В конце выполнения метода Form1_Load значение переменной j равно 8. Переменная j фактически становится глобальной, но доступ к ней есть только из вашего обработчика события Click PictureBox'а. Так как в вашем обработчике значение переменной j не меняется, а из других областей видимости доступа к этой переменной нет, то при нажатии на любой PictureBox в ваш label1 будет записываться именно это значение, то есть 8. Добавлено через 4 минуты Кстати, значение переменной io тоже всегда будет равно 7, а не как вы, видимо, планирвоали.
0
|
14.05.2014, 09:30 | 3 | |||||
Сообщение было отмечено misha007 как решение
Решение
А принцип передачи значения в подобный обработчик события Click Вы знаете?
Нужно положить j, например, в Tag к PictureBox, а оттуда уже доставать при необходимости. В текущем примере у Вас переменная просто итерируется в том числе и для вспомогательного класса, который генерируется для анонимной функции.
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||
14.05.2014, 09:34 | 4 | |||||
Сообщение было отмечено misha007 как решение
Решение
Решить данную проблему можно следующим образом:
Spawn, опередили)
0
|
Spawn
|
14.05.2014, 09:35
#5
|
Не по теме: kodv, пока я пример рисовал, Вы текст писали, с которым меня опередили :D
0
|
0 / 0 / 1
Регистрация: 14.05.2014
Сообщений: 4
|
|
14.05.2014, 15:18 [ТС] | 6 |
Spawn, kodv, Спасибо большое за вашу отзывчивость и помощь! У меня возникло еще два небольших вопроса.
1) Локальный. У меня получилось сохранить одну из двух координат бокса, куда можно записать вторую координату? 2) Глобальный. Что бы вы посоветовали мне прочитать, чтобы мне лучше понимать данную тему?
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
14.05.2014, 15:53 | 7 |
Сообщение от misha007
0
|
0 / 0 / 1
Регистрация: 14.05.2014
Сообщений: 4
|
|
15.05.2014, 00:05 [ТС] | 9 |
Еще раз спасибо за помощь.
0
|
15.05.2014, 00:05 | |
15.05.2014, 00:05 | |
Помогаю со студенческими работами здесь
9
Определить на какой рядок нажал пользователь Как узнать, на какую кнопку нажал пользователь? Проверить не нажал ли пользователь кнопку завершения работы Нужно чтоб изменялась сума денег после того как пользователь выбрал свою покупку Отобразить PrintDialog, и если пользователь нажал ОК - закрыть отчет Как отследить в Edit, что пользователь нажал Enter? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |