c# - 如何使用按钮单击在特定文本框中输入文本

标签 c# winforms

我正在开发 WinForms 应用程序。我的表单中有四个文本框和一个按钮。我在单击按钮时使用 textBox1.SelectedText += "any string" ,以便它写入第一个 TextBox 。如果我添加 textBox1.SelectedText += "any string." 那么它会写入 textbox1 和 textbox 2。

当我单击文本框1并按下按钮时,该字符串仅写入第一个文本框,而我单击第二个文本框并按下按钮,然后它写入第二个文本框。有什么方法可以做到这一点吗?

我正在使用以下代码。

private void button1_Click(object sender, EventArgs e)
{
    textBox1.SelectedText += "abc";
    textBox2.SelectedText += "abc";          
}

当我将焦点放在控件上时,当我们按下按钮时,焦点将转到按钮上。那么,我们怎样才能在按下按钮后将焦点集中在表单的一个文本框上呢?

最佳答案

你可以试试这个

    TextBox selTB = null;

    public Form1()
    {
        InitializeComponent();
        textBox1.Enter += tb_Enter;
        textBox2.Enter += tb_Enter;
        textBox3.Enter += tb_Enter;
        textBox4.Enter += tb_Enter;
    }

    ~Form1()
    {
        textBox1.Enter -= tb_Enter;
        textBox2.Enter -= tb_Enter;
        textBox3.Enter -= tb_Enter;
        textBox4.Enter -= tb_Enter;
    }

    private void tb_Enter(object sender, EventArgs e)
    {
        selTB = (TextBox)sender;
    }


    private void button1_Click(object sender, EventArgs e)
    {
        // Do what you need
        selTB.SelectedText += "abc";

        // Focus last selected textbox
        if (selTB != null) selTB.Focus();
    }

这个想法是,当您输入文本框时,将其存储在 selTB 中。
因此,当您单击按钮时,您就知道哪个文本框是最后选择的文本框。

关于c# - 如何使用按钮单击在特定文本框中输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367435/

相关文章:

c# - WPF:如何在运行时更改 CurrentUICulture

c# - Microsoft ml.net 连接 2 列作为标签

从嵌套类到包含类的 C# 成员访问

c# - System.Windows.Media.Color 到颜色名称

c# - 在 C# 中获取不同整数集的最佳方法

c# - log4net 何时将日志写入或提交到文件?

.net - 检测文本框自动完成列表何时显示

c# - 单击一次打开下拉列表(在数据 GridView 中)项目

c# - 运算符 '==' 不能应用于类型 'char' 和 'string' 的操作数

c# - 将 DataGridView 内容复制到剪贴板。粘贴时未选择的行将作为空白行出现。!