Câu trả lời:
Đặt thuộc ActiveControl
tính của biểu mẫu và bạn sẽ ổn.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
hoạt động - có vẻ như hoạt động tốt khi chương trình đang chạy.
this.ActiveControl = textBox1;
Mọi người đều hiểu ý nghĩa của "textBox1". "youttextboxname" nghe có vẻ như... = "MyTextBox";
kiểm tra thứ tự tab của bạn và đảm bảo hộp văn bản được đặt thành không
Bạn có thể thử:
Theo tài liệu:
Phương thức Chọn kích hoạt điều khiển nếu bit kiểu có thể chọn của điều khiển được đặt thành true trong ControlStyles, nó được chứa trong một điều khiển khác và tất cả các điều khiển chính của nó đều hiển thị và được bật.
Trước tiên, bạn có thể kiểm tra xem có thể chọn điều khiển hay không bằng cách kiểm tra thuộc tính MyTextBox.CanSelect .
Bạn không thể đặt tiêu điểm thành điều khiển nếu nó chưa được hiển thị. Form.Load () xảy ra trước khi các điều khiển được hiển thị.
Chuyển đến sự kiện của biểu mẫu và nhấp đúp vào sự kiện "Hiển thị". Trong trình xử lý sự kiện được hiển thị của biểu mẫu, gọi phương thức control.F Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Nếu bạn chỉ muốn đặt tiêu điểm vào lần đầu tiên biểu mẫu được hiển thị, hãy thử xử lý sự kiện Form.Shown và thực hiện ở đó. Nếu không thì sử dụng Control.VisibleChanged .
Lý do bạn không thể làm cho nó hoạt động là vì Load
sự kiện được gọi trước khi biểu mẫu được vẽ hoặc kết xuất.
Nó giống như nói với một nơi pizza làm bánh pizza của bạn, và sau đó yêu cầu họ gửi cho bạn một hình ảnh về bao nhiêu pepperoni trên bánh pizza của bạn trước khi họ làm nó.
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();
}
}
}
Tôi đã giải quyết vấn đề của mình bằng cách thay đổi thuộc tính "Tab Index" của TextBox. Tôi đặt 0 cho TextBox mà tôi muốn tập trung vào Biểu mẫu khi chương trình bắt đầu.
Đặt giá trị của thuộc tính Tab Index = 0 và sau đó ở dạng tải hàm viết:
YourTextboxName.Focus();
Nó sẽ làm việc.
Bạn có thể sử dụng textBox1.select();
hoặc Tab Index trong cài đặt hộp văn bản. TabIndex=0
tập trung đầu tiên.
Đặt Tabstop thành True và Tab Index ở mức tối thiểu thành điều khiển mà bạn cần tập trung.
ví dụ: Nếu bạn có 2 TextBoxes: TextBox1 và TextBox2, hãy đặt Tabstop thành True cho cả hai và Tab Index thành 0 và 1 tương ứng. Khi biểu mẫu tải, tiêu điểm sẽ nằm trên TextBox1 và khi nhấn phím 'Tab', tiêu điểm sẽ chuyển sang TextBox2.
nó hoạt động với tôi khi đặt tabindex thành 0 this.yourtextbox.TabIndex = 0;
Cuối cùng tôi đã tìm thấy sự cố tôi đang sử dụng khung metro và tất cả các giải pháp của bạn sẽ không hoạt động với metroTextBox và tất cả các giải pháp của bạn sẽ hoạt động với textBox bình thường trong tải, hiển thị, tầm nhìn_change, sự kiện, thậm chí chỉ số tab = 0 là hợp lệ.
// 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();
}
Trong tập trung jquery
$(function() {
$("#txtBox1").focus();
});
hoặc trong Javascript bạn có thể làm
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
và winforms
.
ComboBox
. Nhưng nó cũng không hoạt động!