簡體   English   中英

在C#中獲取當前關注的文本框

[英]Get the currently focused textbox in C#

我有兩個文本框和一個按鈕。 當我按下按鈕時,我想知道我當前的插入符號(兩個框中的任何一個)。 我需要知道在哪里插入某個文本。 我試過textbox1.Focused ; textbox1.enabled但都沒有用。 我該如何實現呢? 謝謝

請記住,當您單擊該按鈕時,您的文本框將不再具有焦點。 你需要一種方法來跟蹤按鈕點擊事件之前的焦點。

嘗試這樣的事情

public partial class Form1 : Form
{
    private TextBox focusedTextbox = null;

    public Form1()
    {
        InitializeComponent();
        foreach (TextBox tb in this.Controls.OfType<TextBox>())
        {
            tb.Enter += textBox_Enter;
        }
    }

    void textBox_Enter(object sender, EventArgs e)
    {
        focusedTextbox = (TextBox)sender;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (focusedTextbox != null)
        {
            // put something in textbox
            focusedTextbox.Text = DateTime.Now.ToString();
        }
    }
}

有一種非常簡單的方法可以做到這一點。 您的要求很簡單,因為您只有兩個文本框。

您可以指定一個類范圍的字符串變量,該變量在調用textbox1_GotFocus()textbox1_GotFocus() ,以及textbox2_GotFocus() 因此,如果調用該textbox GotFocus()則指定一個值。 然后在按鈕中為類范圍的字符串變量設置一個條件,如果類范圍的變量具有那種類型的值,則該文本框將填充到您想要放入文本框中的任何內容。

它對我有用,所以我相信它應該對你有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM