173

C#プログラムにtextBoxがあります

プログラムの開始時に、テキストボックスに焦点が当てられる必要があります

Form_Loadでこれを試してみます:

MyTextBox.Focus();

しかし、それは機能しません

4

16 に答える 16

381

フォームのプロパティを設定ActiveControlすれば問題ありません。

this.ActiveControl = yourtextboxname;
于 2011-07-06T13:36:27.720 に答える
25

タブオーダーを確認し、テキストボックスがゼロに設定されていることを確認してください

于 2011-07-06T13:32:15.867 に答える
22

レンダリングされていないコントロールにフォーカスを設定することはできません。Form.Load() は、コントロールがレンダリングされる前に発生します。

フォームのイベントに移動し、「Shown」イベントをダブルクリックします。フォームの表示されたイベント ハンドラで、control.Focus() メソッドを呼び出します。

    private void myForm_Shown(object sender, EventArgs e)
    {
        // Call textbox's focus method
        txtMyTextbox.Focus();
    }
于 2017-03-31T03:02:21.557 に答える
15

あなたは試すことができます:

MyTextBox.Select();

ドキュメントによると:

コントロールの Selectable スタイル ビットが ControlStyles で true に設定されていて、コントロールが別のコントロールに含まれていて、すべての親コントロールが表示され、有効になっている場合、Select メソッドはコントロールをアクティブにします。

MyTextBox.CanSelectプロパティを調べて、コントロールが選択可能かどうかを最初に確認できます。

于 2011-07-06T13:35:51.707 に答える
12

フォームが最初に表示されたときにのみフォーカスを設定したい場合は、Form.Shownイベントを処理して、そこで実行してみてください。それ以外の場合はControl.VisibleChangedを使用します。

于 2011-07-06T13:36:36.583 に答える
7

機能しない理由は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();
        }
    }
}
于 2016-08-20T14:08:37.990 に答える
6

Textbox.Focus()テキストボックス要素にフォーカスを設定することを「試行」します。たとえば、要素の可視性が非表示になっている場合は機能しFocus()ません。したがって、を呼び出す前に、要素が表示されていることを確認してくださいFocus()

于 2013-03-15T19:56:46.307 に答える
5

TextBoxの「TabIndex」プロパティを変更することで問題を解決しました。プログラムの起動時にフォームにフォーカスしたい TextBox に 0 を設定します。

于 2016-10-04T19:33:29.033 に答える
4

フォーム表示イベントを使用して設定する

MyTextBox.Focus();
于 2015-10-09T17:41:52.427 に答える
-5

jqueryでフォーカスを設定

$(function() {
  $("#txtBox1").focus();
});

またはJavascriptで行うことができます

window.onload = function() {
  document.getElementById("txtBox1").focus();
};
于 2016-12-01T10:30:39.670 に答える