如何防止每个按钮替换单词?

时间:2014-09-11 06:21:37

标签: c# windows visual-studio-2012 button label

我正在创建一个名为Sentence Builder的类的应用程序,它应该允许用户单击提供的按钮来构建标签上的句子。单击另一个按钮后,我没有成功获取按钮生成的单词留在标签上。当我单击按钮时,它会在按钮上显示标签上的单词。然后,当我单击另一个按钮时,该按钮上的单词出现在标签上,但它取代了之前已存在的单词。我需要它留在标签上,以便用户可以通过按下多个按钮在标签上创建一个句子。这是我的应用程序代码。

namespace C3_7_Sentence_Builder
{
    public partial class sentencebuilderForm : Form
    {
        public sentencebuilderForm()
        {
            InitializeComponent();
        }

        private void resetButton_Click(object sender, EventArgs e)
        {
            sentenceoutputLabel.Text = "";
        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void AButton_Click(object sender, EventArgs e)
        {
            string output;
            output = AButton.Text;
            sentenceoutputLabel.Text = output;
        }

        private void a_Button_Click(object sender, EventArgs e)
        {
            string output;
            output = a_Button.Text;
            sentenceoutputLabel.Text = output;
        }

        private void anButton_Click(object sender, EventArgs e)
        {
            string output;
            output = anButton.Text;
            sentenceoutputLabel.Text = output;
        }

        private void TheButton_Click(object sender, EventArgs e)
        {
            string output;
            output = TheButton.Text;
            sentenceoutputLabel.Text = output;
        }

        private void the_Button_Click(object sender, EventArgs e)
        {
            string output;
            output = the_Button.Text;
            sentenceoutputLabel.Text = output;
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您需要使用+=

sentenceoutputLabel.Text += output;

它的作用是附加字符串而不是覆盖它。

答案 1 :(得分:1)

除了我的评论之外,我认为我会发布一个答案,因为你可以删除所有单独的事件并将所有按钮包含在以下内容中以执行相同的操作。

private void sentence_button_clicked(object sender, EventArgs e)
{
    var button = sender as Button;
    if(button != null)
        sentenceoutputLabel.Text += button.Text;
}

执行的唯一按钮需要重新分配文本,而不是追加是重置按钮。

答案 2 :(得分:0)

您始终使用您选择的所有文字替换标签的所有文字。您需要保留标签文本,并且只需添加新文本:

sentenceoutputLabel.Text = sentenceoutputLabel.Text + output;

您可能想要添加一些空格:

sentenceoutputLabel.Text = sentenceoutputLabel.Text + " " + output;