Yanıtlar:
ActiveControl
Formun özelliğini ayarlayın ve iyi olmalısınız.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
işe yaramadı - program çalıştıktan sonra bu iyi çalışıyor gibi görünüyor.
this.ActiveControl = textBox1;
Herkes "textBox1" nin anlamını anlar. "youttextboxname" sesleri gibi... = "MyTextBox";
sekme sırasınızı kontrol edin ve metin kutusunun sıfıra ayarlandığından emin olun
Deneyebilirsiniz:
Belgelere göre:
Select yöntemi, denetimin Seçilebilir stil biti ControlStyles'da true değerine ayarlanırsa, başka bir denetimde bulunursa ve tüm üst denetimleri görünür ve etkinse denetimi etkinleştirir.
Önce MyTextBox.CanSelect özelliğini inceleyerek denetimin seçilebilir olup olmadığını kontrol edebilirsiniz .
Odaklanmadıysa, bir denetime odak ayarlayamazsınız. Form.Load () denetimleri oluşturulmadan önce oluşur.
Formun etkinliklerine gidin ve "Gösterilen" etkinliğini çift tıklayın. Formun gösterilen olay işleyicisinde control.Focus () yöntemini çağırın.
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Odağı yalnızca form ilk kez gösterildiğinde ayarlamak istiyorsanız, Form.Shown olayını yönetmeyi ve orada yapmayı deneyin . Aksi takdirde Control.VisibleChanged öğesini kullanın .
İşe alamamanızın nedeni Load
, formun çizilmesinden veya oluşturulmadan önce etkinliğin çağrılmasıdır.
Bir pizza yerine nasıl pizza yapılacağını söylemek ve sonra pizza yapmadan önce pizza üzerinde ne kadar pepperoni olduğunu gösteren bir resim göndermelerini istemek gibi.
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 "TabIndex" özelliğini değiştirme ile sorunumu çözdü. Program başlatıldığında Form odaklanmak istiyorum TextBox için 0 ayarlayın.
Sekme Dizini özelliğinin değerini = 0 olarak ayarlayın ve sonra form yükleme işlevinde write:
YourTextboxName.Focus();
Çalışacak.
Metin kutusu ayarlarından birini textBox1.select();
veya TabIndex'i kullanabilirsiniz . TabIndex=0
önce focoused.
Tabstop'u True'ya ve TabIndex'i odaklanmak istediğiniz kontrole en aza ayarlayın.
Örneğin, 2 TextBox'ınız varsa: TextBox1 ve TextBox2, her ikisi için Tabstop'u True ve TabIndex'i sırasıyla 0 ve 1 olarak ayarlayın. Form yüklendiğinde, odak TextBox1 üzerinde ve 'Sekme' tuşuna basıldığında odak TextBox2'ye taşınır.
benim için çalıştı tabindex 0 olarak ayarlayın this.yourtextbox.TabIndex = 0;
Sonunda ben metro çerçeve kullanarak sorun bulundu ve tüm çözümler metroTextBox ile çalışmaz ve tüm çözümler yük, gösteri, visibility_change, olaylarda normal textBox ile çalışır, hatta sekme endeksi = 0 geçerlidir.
// 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();
}
Jquery set odak
$(function() {
$("#txtBox1").focus();
});
veya Javascript ile yapabilirsiniz
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
ve winforms
.
ComboBox
. Ama bu da işe yaramıyor!