[英]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.