1

ユーザーが ComboBox を右クリックした後に表示される ContextMenu があります。ユーザーがコンテキスト メニューの項目を選択すると、ShowDialog()メソッドを使用してフォームが表示されます。

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If

そのフォームが閉じられると、親フォームの ComboBoxes 内のすべてのデータが更新されます。ただし、これが発生すると、ContextMenu を開いた ComboBox はリセットされて、選択されたインデックスが -1 になりますが、他の ComboBox の選択されたインデックスは同じままです。

コンテキスト メニューを開いた ComboBox がリセットされないようにするにはどうすればよいですか?

4

2 に答える 2

1

これを処理する 1 つの方法は、コンテキスト メニューの Popup イベントを使用して、メニューを起動するコンボ ボックスの選択されたインデックスを取得することです。ダイアログ フォームが閉じると、選択したインデックスがリセットされます。

于 2008-09-08T20:27:30.137 に答える
0

私はそれを考え出した。

ContextMenu.SourceControl()プロパティを参照渡しするメソッドを作成して、 ContextMenu を呼び出したコントロールを操作できるようにしました。メソッドの冒頭で、ComboBox のSelectedValueを取得し、ComboBox にデータをリロードしました。次に、SelectedValueをメソッドの最初に取得した値に設定します。

DaveK さん、正しい方向に向けてくれてありがとう。

于 2008-09-08T20:48:39.417 に答える