2009-07-12 5 views
0

Ich habe ein Formular auf dieser Form habe ich eine RadiobuttonWinForms Forms.Loaded wie Mitglied

Wenn die Radiobutton Änderungen, die ich ein paar Sachen machen wollen. Allerdings möchte ich dies nur tun, wenn die Formload Ereignis und dor einige wierd Grund der Radiobutton verändert Ereignis vor

Anrufstapel auf die Formload gefeuert wurde getroffen zu werden, ist nicht viel, aber es ist von der settings.designer kommenden .cs Datei Wie auch immer, kurz vor dem Setzen eines Flags auf dem onLoadEvent gibt es einige intrinsische Eigenschaften des Formulars wie IsLoaded, die ich verwenden kann, um sicherzustellen, dass mein Optionsfeldcode nur ausgeführt wird, sobald das Formular geladen wird

Antwort

0

Hier ist ein anderes Weg ...

RadioButton hat eine AutoCheck-Eigenschaft, die standardmäßig auf True festgelegt ist, möchten Sie t o Setzen Sie dies im Designer auf false.

Und außer Kraft setzen sie dann manuell in der Form Load-Ereignis auf true wie so:

radioButton1.AutoCheck = true; 

Sie können die CheckedChanged Eigenschaft Setup im Designer setzen nach wie vor und es sollte funktionieren (wird nicht Änderungsereignis auslösen).

0

Überprüfen Sie im Ereignishandler, ob der Optionsschalter und/oder das Formular sichtbar ist. Wenn der Status des Optionsfelds geändert wird, bevor das Formular geladen wurde, sollte RadioButton.Visible den Wert false aufweisen.

0

Sie können auch das FormShown-Ereignis abonnieren. Z. B:

private void Form1_Shown(object sender, EventArgs e) 
{ 
    radioButton1.Checked = true; 
} 
2

können Sie überprüfen die IsHandleCreated Eigenschaft des Formulars zu bestimmen, ob die OnLoad aufgerufen wurde. Dies ist einer IsLoaded-Eigenschaft am nächsten.

0

Sie können überprüfen, ob das Steuerelement den Fokus hat oder nicht. Wenn nicht, dann ignoriere. ZB: