2016-10-18 21 views
0

Winformsを使用していて、チェックボックスから不確定な状態を取得するのに問題があります。それが動作チェックボックスから不確定状態を取得するWinforms

checkBox.CheckState = CheckState.Indeterminate; 

: それは、常にときに、フォームのロード私は不確定するチェックボックスを設定するには、このコードを使用して...

を「未チェック」を返します。

チェックボックスをクリックすると、 "CheckedChanged"イベントが発生し、状態が不確定の場合は何もしません。 しかし、チェックボックスが「不確定」と表示されている間、それはここ

iは、チェックボックスの状態を取得しようとする方法です..「未チェック」の状態を返します。

CheckBox c = sender as CheckBox; 
    if (c.CheckState == CheckState.Indeterminate) 
     { 
      MessageBox.Show("Nope"); 
     } 

私はWPFを除いて解決策を見つけるが、私はなかったですWinformsを使用してください。

私に手伝ってくれてありがとう。

+1

'ThreeState'プロパティが' true'に設定されていますか? – Equalsk

+0

肯定的な値を持つスリーステートのチェックボックスを最初にクリックしたように見えますが、falseに設定されています。最初のクリックでtrueに設定する場合は、デフォルトでfalseになる2状態のチェックボックスを使用してみてください。 –

答えて

1

ThreeStateプロパティをtrueに設定して、CheckBoxコントロールを追加しました。
私はあなたと同じ方法でCheckStateCheckState.Indeterminateに設定しました。
CheckBoxのCheckStateChangedイベントを購読しました。

私はこのようにcheckStateを取得することができます:あなたのコードを持っているでしょう

private void CheckStateChanged(object sender, EventArgs e) 
{ 
    var checkbox = sender as CheckBox; 

    switch (checkbox.CheckState) 
    { 
     case CheckState.Checked: 
      MessageBox.Show("Checked"); 
      break; 
     case CheckState.Unchecked: 
      MessageBox.Show("Unchecked"); 
      break; 
     case CheckState.Indeterminate: 
      MessageBox.Show("Indeterminate"); 
      break; 
     default: 
      MessageBox.Show("Nothing"); 
      break; 
    } 
} 
明らか

の代わりに、メッセージボックス。

+0

はい、CheckStateChangedではなくCheckChangedを使用していましたが、threeStateプロパティはtrueに設定されていませんでした。私はあなたのコードを使用し、それは働いた!ありがとう –

関連する問題