2017-10-03 12 views
0

私は、3つのテキストボックスとボタンがあるフォームがあることを想定しています。ボタンをクリックすると、textBox1.Enabled = false、textBox2.Enabled = false、およびtextBox3.Focus()が設定されます。無効なテキストボックスからフォーカス矩形を削除する

enter image description here

私はに実行している問題は、どちらかtextBox1テキストボックスまたはTextBox2を、ユーザーがボタンをクリックした瞬間に焦点を当てた場合、テキストボックスは無効になりますが、フォーカスのグレー表示バージョンを保持していることです矩形。フォームが無効なテキストボックスを再描画していないようです。添付のスクリーンショットを確認して、最初のテキストボックスと2番目のテキストボックスの違いを確認してください。

フォーカスをtextBox3に移動し、textBox1の周囲のフォーカス矩形を削除するにはどうすればよいですか?

答えて

1

この動作がバグかどうかはわかりませんが、処理方法がわかりました。このトリックは、BorderStyleプロパティを使用しています。

private void button1_Click(object sender, EventArgs e) 
{ 
    textBox3.Focus(); 
    var borderStyle = textBox1.BorderStyle; 
    textBox1.BorderStyle = BorderStyle.None; 
    textBox2.BorderStyle = BorderStyle.None; 
    textBox1.Enabled = false; 
    textBox2.Enabled = false; 
    textBox1.BorderStyle = borderStyle; 
    textBox2.BorderStyle = borderStyle; 
    textBox1.Refresh(); 
} 
+0

ありがとうございます。これは参考になりますが、ハッキーのような感じです。可能であれば、この問題の適切な修正を見つけたいと思います。ボタンクリック時にテキストボックスを無効にすることは、Winフォームの世界で共通の機能であるはずです。私はこのようなバグが時間のテストに耐えられると信じるのは難しいと思っています... –

関連する問題