0

Windowsアプリケーションに、ラジオボタン、コマンドボタン、テキストボックス、データグリッドビュー、リストボックスなどのいくつかのコントロールを含むフォームがあります。

dataGridViewはデータテーブルにバインドされ、ListBoxは別のデータテーブルにバインドされます。ラジオボタンとリストボックスを使用して、dataGridViewのコンテンツをフィルタリングします。

ラジオボタンのいずれかをクリックすると、それに応じてグリッド内のデータが変化します。他のコントロールをクリックすることもでき、それらも応答します。

リストボックスを問題なくスクロールすることもできます。しかし、リストボックス内のアイテムをクリックすると、データグリッドが更新され、リストボックスから選択された各アイテムで更新が続行されます。ただし、他のすべてのコントロールは、ロックされているかのように非アクティブになっています。

これの原因と修正方法を教えてください。

コードは次のとおりです。

    private void lstColor_SelectedIndexChanged(object sender, EventArgs e)
    {
            viewLocalMatsALLBindingSource.Filter = "GRM_COLOR_DESCR = '" + lstColor.Text + "'";
    }

    private void rdbLogomat_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbLogomat.Checked)
        {
            viewLocalMatsALLBindingSource.Filter = "Description LIKE '%LOGO%' OR Description LIKE '%LO-GO%'";
        }
    }

ラジオイベントは問題なく機能し、フォームの他のコントロールを使用できます。ただし、ListBoxイベントにより、ウィンドウの赤い「X」閉じるボタンでさえ、他のすべてのコントロールがフリーズします。ただし、リストボックスで項目を選択した後、データグリッドでセルと行を選択できます。しかし、セルに何かを入力しようとすると、ListBoxで選択された項目は、入力した文字に基づいて変化します。(データグリッドは読み取り専用なので、セルを編集しても意味がありません。)したがって、リストボックスはフォーカスを維持しているようですが、フォーカスを失う方法がわかりません。もう1つは、リストボックスから項目を選択するまでデータグリッドの列を並べ替えることができ、その後その関数がなくなることです。

4

0 に答える 0