Jawaban:
Tetapkan ActiveControl
properti formulir dan Anda harus baik-baik saja.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
berhasil - yang tampaknya berfungsi dengan baik setelah program berjalan.
this.ActiveControl = textBox1;
Semua Orang mengerti arti "textBox1". "youttextboxname" terdengar seperti... = "MyTextBox";
periksa urutan tab Anda dan pastikan kotak teks diatur ke nol
Kamu bisa mencoba:
Menurut dokumentasi:
Metode Pilih mengaktifkan kontrol jika bit gaya Dipilih kontrol diatur ke true di ControlStyles, itu terkandung dalam kontrol lain, dan semua kontrol induknya terlihat dan diaktifkan.
Pertama-tama Anda dapat memeriksa apakah kontrol dapat dipilih dengan memeriksa properti MyTextBox.CanSelect .
Anda tidak dapat mengatur fokus ke kontrol jika belum diberikan. Form.Load () terjadi sebelum kontrol diberikan.
Pergi ke acara formulir dan klik dua kali acara "Tampil". Dalam event handler yang ditampilkan, panggil metode control.Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Jika Anda hanya ingin mengatur fokus saat pertama kali formulir ditampilkan, cobalah menangani acara Form.Shown dan melakukannya di sana. Kalau tidak gunakan Control.VisibleChanged .
Alasan Anda tidak dapat mengaktifkannya adalah karena Load
acara tersebut dipanggil sebelum formulir ditarik atau diberikan.
Ini seperti memberi tahu tempat pizza cara membuat pizza Anda, dan kemudian meminta mereka untuk mengirimi Anda gambar berapa banyak pepperoni dalam pizza Anda sebelum mereka membuatnya.
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();
}
}
}
Saya memecahkan masalah saya dengan mengubah properti "TabIndex" dari TextBox. Saya menetapkan 0 untuk TextBox yang ingin saya fokuskan pada Formulir ketika program dimulai.
Tetapkan nilai properti Tab Index = 0 dan kemudian dalam bentuk fungsi memuat menulis:
YourTextboxName.Focus();
Itu akan berhasil.
Anda dapat menggunakan salah satu textBox1.select();
atau TabIndex dalam pengaturan kotak teks. TabIndex=0
fokus pertama.
Set Tabstop ke True dan TabIndex ke minimum ke kontrol yang Anda butuhkan fokus.
mis. Jika Anda memiliki 2 TextBoxes: TextBox1 dan TextBox2, atur Tabstop ke True untuk keduanya dan TabIndex menjadi 0 dan 1 masing-masing. Saat formulir dimuat, fokus akan berada di TextBox1 dan pada penekanan tombol 'Tab', fokus akan pindah ke TextBox2.
itu berfungsi untuk saya atur tabindex ke 0 this.yourtextbox.TabIndex = 0;
Akhirnya saya menemukan masalah saya menggunakan kerangka metro dan semua solusi Anda tidak akan bekerja dengan metroTextBox, dan semua solusi Anda akan bekerja dengan textBox normal dalam memuat, menunjukkan, visibility_change, peristiwa, bahkan indeks tab = 0 valid.
// private void Form1_VisibleChanged(object sender, EventArgs e)
// private void Form1__Shown(object sender, EventArgs e)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Select();
this.ActiveControl=textBox1;
textBox1.Focus();
}
Dalam fokus set jquery
$(function() {
$("#txtBox1").focus();
});
atau dalam Javascript bisa Anda lakukan
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
dan winforms
.
ComboBox
. Tapi itu juga tidak berhasil!