फॉर्म लोड होने पर टेक्स्टबॉक्स पर ध्यान कैसे लगाएं?


156

मेरे पास मेरा C # प्रोग्राम टेक्स्टबॉक्स है

मुझे यह चाहिए कि जब कार्यक्रम शुरू हो, तो ध्यान टेक्स्टबॉक्स पर होगा

मैं Form_Load पर यह कोशिश करता हूं:

MyTextBox.Focus();

लेकिन यह काम नहीं करेगा

जवाबों:


341

ActiveControlफॉर्म की संपत्ति सेट करें और आपको ठीक होना चाहिए।

this.ActiveControl = yourtextboxname;

1
मैंने इसके लिए कोशिश की ComboBox। लेकिन यह भी काम नहीं करता है!
एलेक्स जोलीग

1
धन्यवाद यह मेरे लिए काम किया जहां बाकी सब कुछ नहीं था। यह निश्चित नहीं है कि टैब इंडेक्स = 0 काम क्यों नहीं करेगा, लेकिन फ़ॉर्म लोड करते समय / डायलॉग दिखाते समय संभवतः परिचालन के अजीब क्रम होते हैं।
डेविड कारिगन

1
TRY THIS >>> यह। ActiveControl = yourtextboxname.Control;
पॉलमिन सिंघासविच

3
यह बहुत अच्छा काम करता है, लेकिन MyTextBox.Focus();काम क्यों नहीं किया - जो प्रोग्राम चलने के बाद ठीक लगता है।
लेवोन

2
लिखें this.ActiveControl = textBox1;सभी "textBox1" के अर्थ को समझता है। "youttextboxname" लगता है जैसे... = "MyTextBox";
Bitterblue

25

अपने टैब क्रम की जांच करें और सुनिश्चित करें कि टेक्स्टबॉक्स शून्य पर सेट है


काम कर रहे। या फार्म में पहला कर्सर "फ़ोकस करने योग्य" तत्व होने के लिए केवल टैबइंडेक्स।
माफीनामा

15

तुम कोशिश कर सकते हो:

MyTextBox.Select ();

प्रलेखन के अनुसार:

चयन विधि नियंत्रण को सक्रिय करती है यदि नियंत्रण का चयन करने योग्य शैली बिट नियंत्रण सेट में सही है, यह दूसरे नियंत्रण में समाहित है, और इसके सभी अभिभावक नियंत्रण दृश्यमान और सक्षम दोनों हैं।

आप पहले देख सकते हैं कि MyTextBox.CanSelect संपत्ति का निरीक्षण करके नियंत्रण का चयन किया जा सकता है या नहीं।


15

यदि यह रेंडर नहीं किया गया है तो आप एक नियंत्रण पर ध्यान केंद्रित नहीं कर सकते। नियंत्रण देने से पहले Form.oad () होता है।

फ़ॉर्म की घटनाओं पर जाएं और "दिखाया गया" ईवेंट पर डबल क्लिक करें। फ़ॉर्म के दिखाए गए ईवेंट हैंडलर में कंट्रोल को कॉल करें। फ़ोकस () विधि।

    private void myForm_Shown(object sender, EventArgs e)
    {
        // Call textbox's focus method
        txtMyTextbox.Focus();
    }

12

यदि आप केवल फ़ोकस को पहली बार दिखाए जाने वाले फ़ॉर्म को सेट करना चाहते हैं, तो Form.hown घटना को संभालने और वहाँ करने का प्रयास करें। अन्यथा नियंत्रण का उपयोग करें ।


6

Textbox.Focus()टेक्स्ट बॉक्स तत्व पर ध्यान केंद्रित करने के लिए "कोशिश करता है"। तत्व के मामले में दृश्यता उदाहरण के लिए छिपी हुई है, Focus()काम नहीं करेगी। इसलिए सुनिश्चित करें कि कॉल करने से पहले आपका तत्व दिखाई दे रहा है Focus()


5

कारण यह हो सकता है कि आप इसे काम नहीं कर सकते क्योंकि Loadफॉर्म के ड्रा या रेंडर होने से पहले इवेंट को बुलाया जाता है।

यह एक पिज्जा जगह को बताने के लिए पसंद करता है कि कैसे अपने पिज्जा बनाने के लिए, और फिर उन्हें पूछने के लिए कि वे आपके पिज्जा पर कितना पेपरोनी बनाने से पहले एक तस्वीर भेजते हैं।

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

मैंने टेक्स्टबॉक्स की "टैबइंडेक्स" संपत्ति को बदलने के साथ अपनी समस्या को हल किया। मैंने टेक्स्टबॉक्स के लिए 0 सेट किया है जिसे मैं प्रोग्राम शुरू होने पर फॉर्म पर केंद्रित करना चाहता हूं।



3

टैब इंडेक्स प्रॉपर्टी का मान सेट करें = 0 और फिर फॉर्म लोड फंक्शन में लिखें:

YourTextboxName.Focus();

यह काम करेगा।


2

आप टेक्स्टबॉक्स सेटिंग में textBox1.select();या तो टैब्डेक्स का उपयोग कर सकते हैं । TabIndex=0पहले focoused।


यदि हम textBox1.select () कहते हैं; फॉर्म लोड इवेंट हैंडलर में, यह टेक्स्टबॉक्स 1 में फोकस सेट करता है।
तुषार आर।

1

टैबस्टॉप को True पर सेट करें और TabIndex को कम से कम उस कंट्रोल पर रखें, जिस पर आपको फोकस की जरूरत है।

उदा। यदि आपके पास 2 टेक्स्ट बॉक्स हैं: TextBox1 और TextBox2, क्रमशः Tabstop को दोनों के लिए सेट करें और TabIndex को क्रमशः 0 और 1 पर सेट करें। जब फ़ॉर्म लोड होता है, तो ध्यान TextBox1 पर होगा और 'Tab' कुंजी के प्रेस पर, ध्यान TextBox2 पर जाएगा।


1

अपने फ़ॉर्म पर, गुणों पर जाएं और सुनिश्चित करें कि "TopMost" संपत्ति सही पर सेट है, जो आपकी समस्या को हल करेगी।



0

अंत में मैंने पाया कि समस्या मैं मेट्रो फ्रेमवर्क का उपयोग कर रहा था और आपके सभी समाधान मेट्रोट्रैक्स्टबॉक्स के साथ काम नहीं करेंगे, और आपके सभी समाधान लोड, शो, दृश्यता-परिवर्तन, घटनाओं, यहां तक ​​कि टैब इंडेक्स = 0 मान्य के साथ सामान्य टेक्स्टबॉक्स के साथ काम करेंगे।

   // 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 सेट फोकस में

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

या जावास्क्रिप्ट में आप कर सकते हैं

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

4
यह एक वेब साइट प्रश्न के लिए एक अच्छा जवाब हो सकता है, लेकिन यह एक टैग है c#और winforms
बेन वोइगट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.