コントロールでenabledプロパティをfalseに設定した場合のように、テキストの色を変更せずにリストボックスでのユーザー入力をブロックするにはどうすればよいですか?
これはWinForms用です。
コントロールでenabledプロパティをfalseに設定した場合のように、テキストの色を変更せずにリストボックスでのユーザー入力をブロックするにはどうすればよいですか?
これはWinForms用です。
最善のオプションは、それを行わないことです。代わりに、この状況では、表示/選択する1つのアイテムのみを入力します。
それ以外の場合は、次のことを行う必要があります。-現在の選択を記憶する-OnSelectedIndexChangedを処理する-選択をリセットする(潜在的な再帰を処理する)
ユーザーが変更できないリストボックスからのデフォルトの選択が必要だと思いますか?この問題に対する私のお気に入りのアプローチは、ユーザーがリストボックスにアクセスできないようにすることです。これを行うには、リストボックスにイベントを追加しGotFocus
、リストボックスがフォーカスを取得するたびにフォーカスを別のコントロールに設定します。このようなもの:
private void listBox1_GotFocus(Object sender, EventArgs e) {
this.Select();//set the form as the active control or even this.Focus();
}