2017-08-27 9 views
0

私は6つのチェックボックスを持つCheckedListBoxコントロールを持っています。CheckedListBoxから現在選択されているチェック値を取得する方法は?

ユーザーは3番目のインデックスをチェックし、値を未チェックからチェックに変更します。 内部:イベントを呼び出す - その3番目のインデックスのチェック値を取得します。

これは、SelectedIndexChangedイベントを追加するように思われます。それはユーザーが値を変更したことを私に伝えません。

他にもSelectedValueChangedがあります。

それはすべてのいずれかで私に何かを伝える場合、関数があるように私は、知らない:

*_SelectedValueChanged(object sender, EventArgs e) 

のEventArgsすると、この必要な情報を取得するために一種の無駄です。

この場合も、単にユーザーが選択した項目のチェック値を取得するだけで済みます。私は選択したすべてのアイテムを集めることには興味がありません。現在選択されているものだけです。ありがとう。

+0

おっと、私の悪いのに役立ちます

Console.WriteLine(checkedListBox1.GetItemChecked(checkedListBox1.SelectedIndex)); 

希望。私はこれを別のコントロールと混同しました。 'chkList.Items [chkList.SelectedIndex]'のようなものを使うことができます。 'chkList'はあなたのCheckedListBoxです。例: 'Console.WriteLine(chkList.Items [chkList.SelectedIndex] .ToString());'。 –

+0

ToString()は値を返しますが、アイテムがチェックされているかどうかはわかりません。私がストリング値の価値を間違えた場合、私は容認した価値を意味するのに対して、私を許してください。それでも、両方を知っていると便利です。 – Phil

+0

下の私の答えをチェックしてください。 –

答えて

1

次のようなものを使用することができ、選択した項目の表示値(コンテンツ)を取得するために:選択したかどうかを判断するには

Console.WriteLine(checkedListBox1.SelectedItem.ToString()); 

Console.WriteLine(checkedListBox1.Items[checkedListBox1.SelectedIndex].ToStr‌​ing()); 

またはそれより短いバージョンをアイテムがチェックされているかどうかは、次のようなものを使用できます:

Console.WriteLine(checkedListBox1.CheckedItems.Contains(checkedListBox1.SelectedItem)); 

Thチェックされた項目の中で選択された項目の内容が見つかるかどうかをチェックします。 CheckedListBoxに重複があると、結果が間違ってしまう可能性があります。これを避けるために、あなたはインデックスの代わりに、値をチェックするかもしれない、このように:

Console.WriteLine(checkedListBox1.CheckedIndices.Contains(checkedListBox1.SelectedIndex)); 

は編集:私はちょうど見つけよりよい解決策、GetItemChecked方法を使用することです。以下のような何か完璧に動作します::)

+0

Contains()を使用できるのは、項目がすでに選択されている場合のみです。私が最初にチェックボックスを選択している場合、Contains()はfalseを返すようです。私がもう一度やると、それは真実に戻っているようです。 – Phil

+0

実際にチェックボックス*(項目を選択するだけではありません)*を確認してもよろしいですか? [CheckOnClick'](https://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.checkonclick(v = vs.110).aspx)を参照する必要があります。プロパティ。これをtrueに設定すると、アイテムが選択されたときに、アイテムが1回のクリックでチェック/チェック解除されます。 –

+0

あなたはそのような不動産について尋ねると、私より数秒先でした。クリックやダブルクリックは混乱していて、おそらく私のユーザーにとっては紛らわしいものでした。プロパティは違いを作りました。ありがとう! – Phil

関連する問題