【问题标题】:How write letters using the buttons in various textboxs?如何使用各种文本框中的按钮写字母?
【发布时间】:2017-06-27 22:35:44
【问题描述】:

我有一个小应用程序,我想使用按钮在不同的文本框中编写文本。 这是我的代码,但点击按钮不要将文本写入文本。 请建议我。

我应该改变什么?在记事本中一切正常,但在文本框中却不行。

enter image description here

public partial class Form1 : Form
{

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams param = base.CreateParams;
            param.ExStyle |= 0x08000000;
            return param;
        }
    }

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        {
            SendKeys.Send("A");
        }
    }

    private void button3_Click(object sender, EventArgs e)
    {
        {
            SendKeys.Send("B");
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        {
            SendKeys.Send("C");
        }
    }

    private void button4_Click(object sender, EventArgs e)
    {
        {
            SendKeys.Send("D");
        }
    }
}

}

【问题讨论】:

  • 它在写入记事本时有效,因为只有一个(大)文本框可以写入。在定位表单时,您需要告诉您打算写入哪个 TextBox。
  • 您能详细介绍一下您的项目吗?是适用于 Windows 的 WPF 或 APP,还是使用 Xamarin 进行跨平台开发?
  • @Filburt 我有更多的文本框,如何检测?
  • @UtkarshBais 它是适用于 windows (winform) .net 的简单应用程序。
  • 您需要定义逻辑以找到正确的文本框,然后将焦点设置为它。做这样的事情的 MVVM 方法是发送带有相应字母的消息并让 MessageHandler 处理它,即决定正确的文本框。但是教你 MVVM 会很宽泛,可以在这里给出答案。

标签: c# .net button textbox keyboard


【解决方案1】:

也许你应该做这样的事情

private void button3_Click(object sender, EventArgs e)
{
    //SendKeys.Send("B");
    txtBox.Text += "B";
}

但是因为不知道要编辑哪个文本框,所以需要引入变量

private TextBox _currTextBox;

// wire all text boxes to this "enter" event
private void txtBox_Enter(object sender, EventArgs e)
{
    _currTextBox = (TextBox)sender;
}
// and accordingly

private void button3_Click(object sender, EventArgs e)
{
    _currTextBox.Text += "B";
}

【讨论】:

  • 这只是一个文本框,我需要所有文本框,焦点在哪里
  • @matus.kasper 仔细阅读 - 这适用于所有文本框。当您输入一个时 - 您选择那个作为当前
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 2011-08-30
  • 2017-04-28
  • 1970-01-01
相关资源
最近更新 更多