清除文本框和添加文本框-如何实现两种模式

本文关键字:文本 实现 模式 两种 添加 清除 何实现 | 更新日期: 2023-09-27 17:51:02

我有这样一个代码,它从一些数组(可以有很多数组)生成随机问题到文本框中。每个问题都由表单上的某个按钮询问,结果被复制到剪贴板上。

      private void buttonHi_Click(object sender, EventArgs e)
       {
        string[] Hi = new string[]
        {"How are you?", "What's up?", "How have you been?"};
        Random X = new Random();
        string Hi = Hi[X.Next(0, Hi.Length)];
        TextBox.Text = Hi;
        Clipboard.SetText(TextBox.Text);
       }
        private void buttonQuestion_Click(object sender, EventArgs e)
       {
        string[] Question = new string[]
        {"Are you busy?", "What are you doing?", "Sleeping?"};
        Random X = new Random();
        string Hi = Question[X.Next(0, Question.Length)];
        TextBox.Text = Question;
        Clipboard.SetText(TextBox.Text);
       }

所以我可以问候一个人或问一个问题。当我在问候后问一个问题时,我的文本框里的问候就消失了。但是,如果我想根据不同按钮的结果制作更长的短语呢?

这样我就会得到"嗨,你好吗?"你在干什么?"是否有一种方法来添加文本到文本框,而不删除以前的文本?然后将整体结果复制到剪贴板。

同时有一个旧的选项覆盖旧的文本与一个新的按钮按下。我想在表单中做这样的转换,但不知道怎么做。

注:我知道我可以将两个数组连接到一个按钮并获得组合结果,但这不是我需要的,因为我可以有更多的按钮并以不同的组合使用它们

清除文本框和添加文本框-如何实现两种模式

TextBox.Text = String.Format("{0} {1}", TextBox.Text, Question);

当你输入Clipboard.SetText(TextBox.Text);时它会复制所有的文本

编辑:

如果你想替换问题,但保留问候语,那么我建议保留当前问题的参考,像这样

private string _currentQuestion = String.Empty;
private void buttonHi_Click(object sender, EventArgs e)
   {
    string[] Hi = new string[]
    {"How are you?", "What's up?", "How have you been?"};
    Random X = new Random();
    _currentQuestion = Hi[X.Next(0, Hi.Length)];
    TextBox.Text = _currentQuestion;
    Clipboard.SetText(TextBox.Text);
   }
    private void buttonQuestion_Click(object sender, EventArgs e)
   {
    string[] Question = new string[]
    {"Are you busy?", "What are you doing?", "Sleeping?"};
    Random X = new Random();
    string Hi = Question[X.Next(0, Question.Length)];
    String.Format("{0} {1}", _currentQuestion, Question)
    Clipboard.SetText(TextBox.Text);
   }

如果我完全理解它你想在同一个文本框中添加一个问题到一个问题吗?

:

TextBox.Text = TextBox.Text + " " + Question;

你的问题由两部分组成。第一:

是否有一种方法来添加文本到文本框,而不删除以前的文本?

是的,只需添加文本,像这样:

TextBox.Text += " " + Question;
第二:

然后将整体结果复制到剪贴板。

确定。设置Clipboard:

Clipboard.SetText(TextBox.Text);

可以这样使用AppendText:

TextBox.AppendText("Hi");