0

winform にリストボックスがあり、リストボックス内の項目が選択されると、同じフォーム内のテキストボックスに値が配置されます。リストボックスには多くの項目があり、選択するとテキストボックスを空にして新しい値を渡すことができます。ユーザーが最初に選択したアイテム以外の何かをクリックしたかどうかを確認するにはどうすればよいですか? 以下のように、現在選択されているアイテムを取得します。

var selectedItem = (ReportItems)listbox.selectedItem
4

4 に答える 4

1

SelectedIndexChangedでイベントを使用できますListBox。このイベントのイベント ハンドラーを作成して、 で選択したインデックスがいつListBox変更されたかを判断できます。これは、ListBox での現在の選択に基づいて、他のコントロールに情報を表示する必要がある場合に役立ちます。このイベントのイベント ハンドラーを使用して、他のコントロールに情報を読み込むことができます。

MSDN のドキュメントを参照してください:リンク

于 2012-09-21T12:46:45.770 に答える
0

私の解決策は、常に最初にテキストボックスをクリアすることでした。したがって、ユーザーがリストビューで項目を選択するとすぐに、テキストボックスにすぐに入力するのではなく、入力する前にテキストボックスをクリアします。

クリアテキスト(); リストボックス項目がクリックされるとすぐに呼び出されます。

    public void clearText()
    {
        textBox1.Clear();
        textBox2.Clear();
        textBox3.Clear();
        textBox4.Clear();
        textBox5.Clear();
        textBox6.Clear();
        textBox7.Clear();
        textBox8.Clear();
        textBox9.Clear();
        textBox10.Clear();
        textBox11.Clear();
        textBox12.Clear();
    }
于 2012-09-21T13:08:00.330 に答える
0

ReportItems のグローバル変数を追加して、それを「selItem」と呼ぶことができます。

ユーザーが選択したアイテムを変更した後、「新しい」selectedItemを「selItem」変数でチェックします.リストボックスには、選択が前のものから変更されたかどうかを確認できるメソッドがあるとは思いません..

于 2012-09-21T12:46:08.993 に答える
0

SelectionChangedのイベントを利用していない理由があるかどうかはわかりませんListBoxが、そうでない場合は利用する必要があります。privateさらに、最初に選択した項目をフォームの変数に保存し、メソッド ハンドラーが起動するたびに比較できるため、最初に選択した項目と異なるかどうかを判断するのは非常に簡単ですSelectionChanged

これ以外に、私が提案できることはあまりありません。なぜなら、あなたの質問は非常に明確ではなく、調べるコードがないからです。

于 2012-09-21T12:50:27.060 に答える