Может ли отключение элемента управления вызвать изменение значения переключателей? - PullRequest
1 голос
/ 22 сентября 2010

У меня есть цикл For Each , проходящий через элементы управления на панели, отключая их. Когда цикл достигает одного определенного элемента управления сетки и отключает его, событие CheckedChanged запускается для следующего элемента управления в цикле, который является переключателем.

Стек вызовов выглядит следующим образом:

System.Windows.Forms.dll!System.Windows.Forms.RadioButton.OnCheckedChanged(System.EventArgs e = {System.EventArgs}) + 0x15 bytes    
System.Windows.Forms.dll!System.Windows.Forms.RadioButton.WnProc(Microsoft.AGL.Forms.WM wm = WM_RADIOBUTTON_NOTIFYVALUECHANGED, int wParam = 0, int lParam = 0) + 0x17 bytes    
System.Windows.Forms.dll!System.Windows.Forms.Control._InternalWnProc(Microsoft.AGL.Forms.WM wm = WM_RADIOBUTTON_NOTIFYVALUECHANGED, int wParam = 0, int lParam = 0) + 0x9 bytes    
System.Windows.Forms.dll!Microsoft.AGL.Forms.WL.SetEnabled(System.IntPtr hwnThis = 1179753, Microsoft.AGL.Common.BOOL fEnabled = fFalse)    
System.Windows.Forms.dll!System.Windows.Forms.Control._SyncEnabled() + 0x21 bytes   
System.Windows.Forms.dll!System.Windows.Forms.Control.Enabled.set(bool value = false) + 0x61 bytes  

Я не понимаю, как control.Enabled = False может вызвать событие OnCheckedChanged.

Кто-нибудь сталкивался с подобной ситуацией и может пролить свет на это?

Ответы [ 2 ]

2 голосов
/ 14 мая 2012

Проблема и решение объяснены более подробно здесь: Форум разработчиков форумов .Это также объясняет, почему настройка Me.Focus помогает решить проблему.

1 голос
/ 22 сентября 2010

Это происходит во время события загрузки? Иногда RadioButtons срабатывает во время инициализации формы, «По замыслу», согласно Microsoft. Если это так, вы можете проверить обработчик OnCheckedChanged, чтобы убедиться, что форма загружена, прежде чем что-либо делать.

...