清除文本框并添加到其中 - 如何实现两种模式?

时间:2015-05-28 12:30:28

标签: c# arrays winforms

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

      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);
       }

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

所以我得到的结论是“你好,你好吗?你在做什么?”  有没有办法在不删除以前的文本的情况下将文本添加到文本框?  然后将整体结果复制到剪贴板。

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

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

4 个答案:

答案 0 :(得分:1)

怎么样

m=a[2]

然后,当您说TextBox.Text = String.Format("{0} {1}", TextBox.Text, Question); 时,它会复制所有文本

编辑:

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

Clipboard.SetText(TextBox.Text);

答案 1 :(得分:1)

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

像:

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

答案 2 :(得分:0)

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

  

有没有办法将文本添加到文本框而不删除以前的文本?

是的,只需附上文字,如下:

TextBox.Text += " " + Question;

第二

  

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

不确定。设置Clipboard

Clipboard.SetText(TextBox.Text);

答案 3 :(得分:0)

您可以使用以下AppendText

TextBox.AppendText("Hi");