Respuestas:
Establezca la ActiveControl
propiedad del formulario y debería estar bien.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
funcionó? Parece que funciona bien una vez que el programa se está ejecutando.
this.ActiveControl = textBox1;
Todos entiende el significado de "textBox1". "youttextboxname" suena como... = "MyTextBox";
verifique su orden de tabulación y asegúrese de que el cuadro de texto esté configurado en cero
Tu podrías intentar:
De acuerdo con la documentación:
El método Seleccionar activa el control si el bit de estilo Seleccionable del control se establece en verdadero en ControlStyles, está contenido en otro control y todos sus controles principales están visibles y habilitados.
Primero puede verificar si el control puede seleccionarse inspeccionando el propiedad MyTextBox.CanSelect .
No puede establecer el foco en un control si no se ha procesado. Form.Load () ocurre antes de que se representen los controles.
Vaya a los eventos del formulario y haga doble clic en el evento "Mostrado". En el controlador de eventos que se muestra en el formulario, llame al método control.Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Si sólo desea ajustar el foco de la primera vez que se muestra la forma, tratar el manejo de la Form.Shown evento y hacerlo allí. De lo contrario, use Control.VisibleChanged .
La razón por la que no puede hacer que funcione es porque Load
se llama al evento antes de dibujar o representar el formulario.
Es como decirle a una pizzería cómo hacer tu pizza y luego pedirles que te envíen una imagen de cuánto pepperoni hay en tu pizza antes de que la preparen.
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();
}
}
}
Resolví mi problema al cambiar la propiedad "TabIndex" de TextBox. Establecí 0 para TextBox en el que quiero enfocarlo en Form cuando comience el programa.
use el evento que se muestra en el formulario y establezca
MyTextBox.Focus();
Establezca el valor de la propiedad de índice de tabulación = 0 y luego en la función de carga de formulario escriba:
YourTextboxName.Focus();
Funcionará.
Puede usar TabIndextextBox1.select();
o TabIndex en la configuración del cuadro de texto. TabIndex=0
enfocado primero.
Establezca Tabstop en True y TabIndex al mínimo en el control en el que necesita centrarse.
por ejemplo, si tiene 2 TextBoxes: TextBox1 y TextBox2, configure Tabstop en True para ambos y TabIndex en 0 y 1 respectivamente. Cuando se carga el formulario, el foco estará en TextBox1 y al presionar la tecla 'Tab', el foco se moverá a TextBox2.
funcionó para mí establecer tabindex en 0 this.yourtextbox.TabIndex = 0;
Finalmente encontré el problema que estaba usando Metro Framework y todas sus soluciones no funcionarán con metroTextBox, y todas sus soluciones funcionarán con textBox normal en carga, mostrar, visibilidad_cambiar, eventos, incluso la pestaña índice = 0 es válida.
// 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();
}
En jquery establecer foco
$(function() {
$("#txtBox1").focus();
});
o en Javascript puedes hacer
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
y winforms
.
ComboBox
. ¡Pero tampoco funciona!