C#プログラムにtextBoxがあります
プログラムの開始時に、テキストボックスに焦点が当てられる必要があります
Form_Loadでこれを試してみます:
MyTextBox.Focus();
しかし、それは機能しません
フォームのプロパティを設定ActiveControl
すれば問題ありません。
this.ActiveControl = yourtextboxname;
タブオーダーを確認し、テキストボックスがゼロに設定されていることを確認してください
レンダリングされていないコントロールにフォーカスを設定することはできません。Form.Load() は、コントロールがレンダリングされる前に発生します。
フォームのイベントに移動し、「Shown」イベントをダブルクリックします。フォームの表示されたイベント ハンドラで、control.Focus() メソッドを呼び出します。
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
あなたは試すことができます:
ドキュメントによると:
コントロールの Selectable スタイル ビットが ControlStyles で true に設定されていて、コントロールが別のコントロールに含まれていて、すべての親コントロールが表示され、有効になっている場合、Select メソッドはコントロールをアクティブにします。
MyTextBox.CanSelectプロパティを調べて、コントロールが選択可能かどうかを最初に確認できます。
フォームが最初に表示されたときにのみフォーカスを設定したい場合は、Form.Shownイベントを処理して、そこで実行してみてください。それ以外の場合はControl.VisibleChangedを使用します。
機能しない理由はLoad
、フォームが描画またはレンダリングされる前にイベントが呼び出されるためです。
ピザ屋にピザの作り方を教えてから、ピザを作る前にピザにどれだけのペパロニが入っているかの写真を送ってもらうように頼むようなものです.
using System;
using System.Windows.Forms;
namespace Testing
{
public partial class TestForm : Form
{
public TestForm()
{
InitializeComponent();
Load += TestForm_Load;
VisibleChanged += TestForm_VisibleChanged;
Shown += TestForm_Shown;
Show();
}
private void TestForm_Load(object sender, EventArgs e)
{
MessageBox.Show("This event is called before the form is rendered.");
}
private void TestForm_VisibleChanged(object sender, EventArgs e)
{
MessageBox.Show("This event is called before the form is rendered.");
}
private void TestForm_Shown(object sender, EventArgs e)
{
MessageBox.Show("This event is called after the form is rendered.");
txtFirstName.Focus();
}
}
}
Textbox.Focus()
テキストボックス要素にフォーカスを設定することを「試行」します。たとえば、要素の可視性が非表示になっている場合は機能しFocus()
ません。したがって、を呼び出す前に、要素が表示されていることを確認してくださいFocus()
。
TextBoxの「TabIndex」プロパティを変更することで問題を解決しました。プログラムの起動時にフォームにフォーカスしたい TextBox に 0 を設定します。
フォーム表示イベントを使用して設定する
MyTextBox.Focus();
jqueryでフォーカスを設定
$(function() {
$("#txtBox1").focus();
});
またはJavascriptで行うことができます
window.onload = function() {
document.getElementById("txtBox1").focus();
};