Рейтинг:
35
King Boy
Ух ты! Я с уверенностью могу сказать, что сам нашел ответ на свой вопрос. Это очень просто.
Я связан метод на "странное" событие SelectedValueChanged выпадающий список в два раза!!! Вот почему, когда событие срабатывает, метод будет вызван дважды. Если вы сделаете то же самое с тремя, четырьмя или более разами, это будет вызов именно на такое время. Поэтому, если у вас есть та же проблема, перепроверьте, чтобы увидеть, связали ли вы метод больше одного раза с событием, конечно, могут быть и другие причины.
Ха-ха, я понял!
Благодаря себе!
Henry Minute
Молодец, что нашел причину, и молодец, что сообщил об этом здесь на благо других.
Я должен сказать, что это не то, что я мог бы предложить в качестве ответа, поскольку это не то, что я когда-либо делал.
Иметь 5 баллов репутации.
[no name]
Спасибо! Хихи! Просто для моих упорных попыток с циклом мышления, редактирования и тестирования!
Рейтинг:
18
Nish Nishant
Я знаю, что вы решили эту проблему сейчас, но вот вам подсказка на будущее. Если вы не создаете элемент управления динамически, рекомендуется всегда использовать конструктор для добавления обработчиков событий. Таким образом, вы не будете случайно добавлять его дважды. Возможно, вы не сможете следовать этому правилу везде, поэтому, если есть сценарии, в которых вы абсолютно обязаны добавить его в написанный пользователем код, убедитесь, что вы делаете все это в одном месте, чтобы было легче отлаживать.
Sergey Alexandrovich Kryukov
Нишант, ты, наверное, уже знаешь, что я бы категорически не согласился.
Дизайнер может сделать гораздо больше беспорядка, а также создать синтаксис, который труднее поддерживать.
Случайное добавление дополнительного обработчика событий вручную может быть результатом небрежности в дизайне и коде, что может повлечь за собой гораздо худшие проблемы, чем этот простой. Кроме того, добавление нескольких обработчиков к одному и тому же событию является важной функцией, имеющей ряд применений.
Уважительно,
--СА
Nish Nishant
Да, и я с тобой не согласен. :-)
Насколько это возможно, при создании WinForms я использую исключительно конструктор для добавления обработчиков событий к элементам управления временем разработки. Он держит все в одном месте и легче управлять.
[no name]
Я могу согласиться с SA, что использование конструктора полезно, когда события различных элементов управления должны быть связаны с различными методами. Но у меня есть сотни элементов управления (comboboxes в моем приложении), которые действуют таким же образом и могут использовать тот же метод, что и обработчик событий. Я должен использовать цикл, чтобы связать их события с одним и тем же методом! Как трудно сделать это, выбрав один и тот же метод для каждого события элемента управления с помощью окна свойств!
Во всяком случае, я научился, когда использовал конструктор и когда кодировал его!
Спасибо!
Nish Nishant
Да, у тебя особый сценарий. Но, как вы узнали на собственном горьком опыте, вы действительно совершили глупую ошибку (которую, к счастью, довольно скоро выяснили). Поэтому для сценариев, где вы можете использовать конструктор, я бы рекомендовал именно этот способ.
Рейтинг:
1
Addam Boord
Просто для дальнейшего использования для тех, кто попадает сюда, я также столкнулся с этой ошибкой в WPF, когда связанная коллекция ItemsSource изменяется в обработчике событий SelectionChanged. Например, если вы добавляете или удаляете значение, которое будет отображаться в поле со списком, то это может привести к непреднамеренному изменению выбора и повторному запуску события.
Рейтинг:
0
Abhinav S
Взгляните на это эта тема[^]. Это может помочь вам.
[no name]
Возможно, из-за моего низкого уровня я не смог найти никакой помощи с этой нитью! Хихи!
Я схожу с ума от массы ошибок, ожидающих меня в будущем во время кодирования и работы над моим проектом, это все время преследует меня! О боже мой! Как я мог продолжать! Я все еще студент со многими другими интересными предметами, я не хочу останавливать их все для этого проекта. Благослови меня и всех, кто любит меня.