2012-03-17 226 views
0

私はwinform上にいくつかのボタン、1つのテキストボックス、およびdatagridviewを持っています。
と私は、テキストブロック上にカーソルを置くために画面にフォームが表示されたいときは、
私はtxtName.Focus()を使用します。
しかし、ロード時のテキストボックスにフォーカスがないときはいつも、 実際にはdagaridviewはそれ自身に焦点を当てています。
解決方法winformでdatagridviewのフォーカスを外す方法

+0

不適切な時刻にFocus()を呼び出すことは、ウィンドウがまだLoadイベントで表示されていない場合のような通常の問題です。代わりにSelect()を使用してください。 –

答えて

2

コントロールのtabindexプロパティを変更するだけです。
他のコントロール(グループボックスまたはパネル)にコントロールが含まれていると、誤解を招く可能性があるため、tabindexプロパティを直接使用するように注意してください。
メニューの[表示]と[タブオーダー]ツールを使用します。
まず、テキストボックスをタブオーダーに置きます。あなたは、フォーム内のコントロールのTabIndexプロパティを設定する必要があります何

3

をコーディングする必要はありません(フォームのロードは、それが自動的にフォーカスを持つことになりますときように、例えば、あなたのTextBoxが最低TabIndexを持っている必要があります)

3
private void Form1_Load(object sender, EventArgs e) 
     { 
      dataGridView1.TabStop = false; 
      textBox1.TabIndex = 0; 
     } 

んその助けが欲しい

0

テキストボックスにフォーカスを当てる前に、ページが読み込まれていることを確認する必要があります。したがって、フォームのLoadイベントのイベントを追加します。

あなたはデザイナーに、またはそのような背後にあるコードでこれを行うことができます、ロードイベント中

this.Load += new EventHandler(Form1_Load); 

あなたのテキストボックスに選択を呼び出します。

private void Form1_Load(object sender, EventArgs e){ 
    txt_Name.Select(); 
} 

「選択」コマンドでは、選択したテキストの量を選択できます。たとえば、インデックス0を開始する最初の文字を選択するには、txt_Name.Select(0,0)を使用します。詳細は MSDNです。

また、tabindexプロパティを0に設定すると、最初にフォーカスを取得することができます(イオンデンによる)。

関連する問題