Form yüklendiğinde TextBox'a nasıl odaklanılır?


156

Benim C # program textBox var

Program başladığında, odak textBox üzerinde olacak

Bu Form_Load üzerinde deneyin:

MyTextBox.Focus();

ama işe yaramayacak

Yanıtlar:


341

ActiveControlFormun özelliğini ayarlayın ve iyi olmalısınız.

this.ActiveControl = yourtextboxname;

1
Bunu denedim ComboBox. Ama bu da işe yaramıyor!
Alex Jolig

1
Teşekkürler bu benim için her şeyin işe yaramadığı için çalıştı. Sekme Dizini = 0'ın neden çalışmadığından emin değilim, ancak formu yüklerken / iletişim kutusunu yüklerken garip bir işlem sırası var.
David Carrigan

1
BU DENEYİN >>> this.ActiveControl = metin kutusu adınız.Control;
Polamin Singhasuwich

3
Bu harika çalışıyor, ama neden MyTextBox.Focus();işe yaramadı - program çalıştıktan sonra bu iyi çalışıyor gibi görünüyor.
Levon

2
Yaz this.ActiveControl = textBox1;Herkes "textBox1" nin anlamını anlar. "youttextboxname" sesleri gibi... = "MyTextBox";
Bitterblue

25

sekme sırasınızı kontrol edin ve metin kutusunun sıfıra ayarlandığından emin olun


Çalışma. Veya sadece tabindex formdaki ilk imleç "odaklanabilir" öğe olmak.
apincik

15

Deneyebilirsiniz:

MyTextBox.Select ();

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 .


15

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();
    }


6

Textbox.Focus()Metin kutusu öğesine odaklanmayı ayarlamak için "Dener". Örneğin, görünürlük gizlenmişse Focus()çalışmaz. Bu yüzden aramadan önce öğenizin görünür olduğundan emin olun Focus().


5

İş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();
        }
    }
}

4

TextBox "TabIndex" özelliğini değiştirme ile sorunumu çözdü. Program başlatıldığında Form odaklanmak istiyorum TextBox için 0 ayarlayın.



3

Sekme Dizini özelliğinin değerini = 0 olarak ayarlayın ve sonra form yükleme işlevinde write:

YourTextboxName.Focus();

Çalışacak.


2

Metin kutusu ayarlarından birini textBox1.select();veya TabIndex'i kullanabilirsiniz . TabIndex=0önce focoused.


TextBox1.select () öğesini çağırırsak; form load olay işleyicisinde, odağı textBox1 içinde ayarlar.
Tushar R.

1

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.


1

formunuzda özelliklere gidin ve sorununuzu çözecek "TopMost" özelliğinin true olarak ayarlandığından emin olun.


0

benim için çalıştı tabindex 0 olarak ayarlayın this.yourtextbox.TabIndex = 0;


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();
    }

-5

Jquery set odak

$(function() {
  $("#txtBox1").focus();
});

veya Javascript ile yapabilirsiniz

window.onload = function() {
  document.getElementById("txtBox1").focus();
};

4
Bu bir web sitesi sorusu için iyi bir cevap olabilir, ancak bu etiketli c#ve winforms.
Ben Voigt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.