0

私は自分の問題の解決策を探してみましたが、すべてが私の問題よりも一歩または二歩進んでいるように見えるため、解決策を見つけることができませんでした.

選択されているアイテムからアイテムを選択するのではなく、チェックボックスリストからチェックされているアイテムを選択しようとしています。

それを知って私がやろうとしていることは、ボタンがクリックされ、チェックされたオプションがチェックされた後、発生する結果のイベントを作成して、チェックされたアイテムのラベルにテキストを表示することです。

このプログラムは、デコレータ パターンに基づいており、ユーザーは 3/4 のチェック可能なオプションのセットから選択できます。ボタンを押すと、それらの項目に関連するテキストがベース テキストの最後のラベルに表示されます。現時点では、最初の例と同様に、選択した項目を一度に 1 つずつ処理することしかできません。

たとえば、Monitor というオプションをオンにすると、ラベルに次のように表示されます。

コンピューターとモニターを取得しています。

モニターやキーボードなど、複数のチェック項目がある場合は、次のように表示されます。

コンピューターとモニターとキーボードを取得しています。

4

1 に答える 1

0

新しいチェック項目の値に基づいてのイベントが発生したときにLabel.Text、ターゲットのプロパティを変更できます。LabelItemCheckCheckedListBox

名前、名前、Label名前のaがあると仮定すると、次のことが適用される場合があります。label1CheckedListBoxcheckedListBox1FormForm1

public class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        label1.Text = "You are getting "; //Change the Text property of label1 to "You are getting "
        checkedListBox1.ItemCheck += new ItemCheckEventHandler(checkedListBox1_ItemCheck); //Link the ItemCheck event of checkedListBox1 to checkedListBox1_ItemCheck; not required as long as you link the event through the designer
    }
    private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
    {
        if (e.NewValue == CheckState.Checked && e.CurrentValue == CheckState.Unchecked) //Continue if the new CheckState value of the item is changing to Checked
        {
            label1.Text += "a " + checkedListBox1.Items[e.Index].ToString() + ", "; //Append ("a " + the item's value + ", ") to the label1 Text property
        }
        else if (e.NewValue == CheckState.Unchecked && e.CurrentValue == CheckState.Checked) //Continue if the new CheckState value of the item is changing to Unchecked
        {
            label1.Text = label1.Text.Replace("a " + checkedListBox1.Items[e.Index].ToString() + ", ", ""); //Replace ("a " + the item's value + ", ") with an empty string and assign this value to the label1 Text property
        }
    }
}

サンプル入力

[x] Monitor
[x] Keyboard
[ ] Mouse
[x] Computer

サンプル出力

You are getting a Monitor, a Keyboard, a Computer, 

ありがとう、
これがお役に立てば幸いです:)

于 2012-12-23T09:44:58.540 に答える