2011-10-25 15 views
1

checkbox_CheckChangedイベントから返された値を取得するにはどうすればよいですか?そのwinformsアプリ、およびフォームとチェックボックスの両方がプログラムで作成されます。すべてのご協力ありがとうございます。checkbox_CheckChangedから値を返します

+0

あなたのコードはどこですか。それを提供できますか? –

答えて

4

コントロールのイベントハンドラは常に「無効」で、return typeは変更できません。代わりに、外部変数を取ることができ、CheckedChangedイベントが発生したときにのみその値を変更します。

public bool checkedthecheckbox { get; set; } 

CheckBox testchbox = new CheckBox(); 

private void Form1_Load(object sender, EventArgs e) 
{ 
    testchbox.CheckedChanged += new EventHandler(testchbox_CheckedChanged); 
} 

void testchbox_CheckedChanged(object sender, EventArgs e) 
{ 
    if (testchbox.Checked) 
     checkedthecheckbox = true; 
    else 
     checkedthecheckbox = false; 
} 
+1

+1実際にQに答えるのに+1 – Otiel

+0

答えたすべての人に感謝し、特別な答えをskkすることに特に感謝します。 – user995689

1

あなたは、イベント引数から送信者のオブジェクトをキャストすることによって、チェックボックスの状態を取得することができます:

public void Method1() 
{ 
    CheckBox checkBox = new CheckBox(); 
    checkBox.CheckedChanged += new EventHandler(checkBox_CheckedChanged); 
} 

void checkBox_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox c = (CheckBox)sender; 
    bool resutlt = c.Checked; 
} 

・ホープ、このことができます!

1

「送信者」オブジェクトから値を取得できます。

CheckBox chk = (CheckBox) sender; 
bool result = chk.Checked; 
0

私が直接変更Checked値を提供しますイベントに変更されたイベントの定期的なチェックボックスを変更するための代替手段を持っています。

あなたは、例えば、このようにそれを使用することができます。

var myForm = new MyForm(); 
myForm.CheckBoxChanged += v => 
{ 
    Console.WriteLine("The value of the checkbox changed to {0}", v); 
}; 

はここでクラスの定義です:

public class MyForm 
{ 
    public event Action<bool> CheckBoxChanged; 
    private CheckBox testchbox = new CheckBox(); 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     testchbox.CheckedChanged += (s, e) => 
     { 
      var cbc = this.CheckBoxChanged; 
      if (cbc != null) 
      { 
       cbc(testchbox.Checked); 
      } 
     }; 
    } 
} 

私はこのことができます願っています。

1

CheckState.CheckedまたはCheckState.Uncheckedは、C#で作成されています。例:

for (int i = 0; i < lsbx_layers.Items.Count; i++) { 
    if (lsbx_layers.GetItemCheckState(i) == CheckState.Checked) { 
     //set boolean variable to true 
    } else if (lsbx_layers.GetItemCheckState(i) == CheckState.Unchecked) { 
     //set boolean variable to false 
    } 
} 
関連する問題