Respostas:
Defina a ActiveControl
propriedade do formulário e você deve ficar bem.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
funcionou - isso parece funcionar bem quando o programa está sendo executado.
this.ActiveControl = textBox1;
Todo mundo entende o significado de "textBox1". "youttextboxname" soa como... = "MyTextBox";
verifique sua ordem de tabulação e verifique se a caixa de texto está definida como zero
Você poderia tentar:
De acordo com a documentação:
O método Select ativa o controle se o bit de estilo Selecionável do controle estiver definido como true no ControlStyles, estiver contido em outro controle e todos os seus controles pai estiverem visíveis e ativados.
Você pode primeiro verificar se o controle pode ser selecionável, inspecionando a propriedade MyTextBox.CanSelect .
Você não pode definir o foco para um controle se ele não tiver sido processado. Form.Load () ocorre antes dos controles serem renderizados.
Vá para os eventos do formulário e clique duas vezes no evento "Mostrado". No manipulador de eventos mostrado no formulário, chame o método control.Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Se você deseja definir o foco apenas na primeira vez em que o formulário é exibido, tente manipular o evento Form.Shown e fazê-lo lá. Caso contrário, use Control.VisibleChanged .
O motivo pelo qual você não pode fazê-lo funcionar é porque o Load
evento é chamado antes que o formulário seja desenhado ou renderizado.
É como dizer a uma pizzaria como fazer sua pizza e pedir que eles enviem uma foto de quanto pepperoni há na sua pizza antes de fazerem.
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();
}
}
}
Resolvi meu problema com a alteração da propriedade "TabIndex" do TextBox. Defino 0 para o TextBox que quero focar no Form quando o programa é iniciado.
Defina o valor da propriedade Index da guia = 0 e, em seguida, escreva na função de carregamento de formulário:
YourTextboxName.Focus();
Vai funcionar.
Você pode usar textBox1.select();
o TabIndex ou na configuração da caixa de texto. TabIndex=0
focado primeiro.
Defina Tabstop como True e TabIndex para o mínimo no controle no qual você precisa se concentrar.
Por exemplo, se você tiver 2 TextBoxes: TextBox1 e TextBox2, defina Tabstop como True para ambos e TabIndex como 0 e 1 respectivamente. Quando o formulário for carregado, o foco estará no TextBox1 e, ao pressionar a tecla 'Tab', o foco será movido para o TextBox2.
funcionou para mim defina tabindex como 0 this.yourtextbox.TabIndex = 0;
Finalmente, encontrei o problema que estava usando o metro framework e todas as suas soluções não funcionarão com o metroTextBox, e todas as suas soluções funcionarão com o textBox normal em load, show, visible_change, events, até mesmo o tab tab = 0 é válido.
// 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();
}
Em jquery definir foco
$(function() {
$("#txtBox1").focus();
});
ou em Javascript você pode fazer
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
e winforms
.
ComboBox
. Mas também não funciona!