2013-02-12 93 views
2

我非常感谢任何帮助。我有20多个按钮,每个按钮都有一个词,或者一个空格或句点。每次我点击一个按钮时,预先存在的单词将被删除并替换为新单词。我需要每个单词和/或空间留在原地,直到我点击“清除”按钮。如何添加(追加)一个单词到同一个句子,每个单词使用一个按钮(单击)

也许这是以前在不同的搜索条件下提出的问题?我倾向于认为我需要确定一个字符串变量,但不知道如何开始。

==============

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class frmSentenceBuilder : Form 
    { 
     public frmSentenceBuilder() 
     { 
      InitializeComponent(); 
     } 

     private void frmSentenceBuilder_Load(object sender, EventArgs e) 
     { 

     } 

     private void btnA_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnA.Text; 
     } 

     private void btn_a_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btn_a.Text; 
     } 

     private void btnAn_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnAn.Text; 
     } 

     private void btn_an_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btn_an.Text; 
     } 

     private void btnThe_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnThe.Text; 
     } 

     private void btn_the_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btn_the.Text; 
     } 

     private void btnman_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnman.Text; 
     } 

     private void btnwoman_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnwoman.Text; 
     } 

     private void btndog_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btndog.Text; 
     } 

     private void btncat_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btncat.Text; 
     } 

     private void btncar_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btncar.Text; 
     } 

     private void btnbicycle_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnbicycle.Text; 
     } 

     private void btnbeautiful_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnbeautiful.Text; 
     } 

     private void btnbig_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnbig.Text; 
     } 

     private void btnsmall_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnsmall.Text; 
     } 

     private void btnstrange_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnstrange.Text; 
     } 

     private void btnlookedat_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnlookedat.Text; 
     } 

     private void btnrode_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnrode.Text; 
     } 

     private void btnspoketo_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnspoketo.Text; 
     } 

     private void btnlaughedat_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnlaughedat.Text; 
     } 

     private void btndrove_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btndrove.Text; 
     } 

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

     private void btnperiod_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnperiod.Text; 
     } 

     private void btnexclam_Click(object sender, EventArgs e) 
     { 
      lblSentenceText.Text = btnexclam.Text; 
     } 

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

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

回答

3

使用lb1SentenceText.Text+=whatever.Text;

+ =相当于lbSentence.Text = lblSentenceText.Text + whatever.Text

基本上,它将右侧string附加或连接到左侧的string。希望它是有道理的?

所以:

string rhs="Hello " ; 
string lhs = "World"; 
string rhs = rhs + lhs;//Hello World 
0

点击按钮的事件,将其更改为+=,而不是=(除清除按钮)。这相当于写作something = something + newValue;

+0

哇!像+ =这么简单? ..但对我来说似乎如此困难。非常感谢。我确信所有这些反应都是有道理的,我会在接下来的几天里对它们进行研究。我整天搜索使用这么多搜索词组合,但没有像这样!我刚刚开始使用C#,因此将努力尽量减少代码,因为我学习。我开始想象我肯定需要引入一个字符串变量,但不是。谢谢!谢谢! – 2013-02-12 22:11:28

2

请大家鼓舞。你有一个多余的代码

btnA.Click += AppendButtonText; 
    btn_a.Click += AppendButtonText; 
    ... 


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

是的,我被告知“现在不用担心太多的代码......只是学习过程......”参加我的第一个C#课程。非常感谢! – 2013-02-12 22:17:25

0

尝试:

lb1SentenceText.Text = lb1SentenceText.Text + *something*.text 

+ =操作符是指添加到,和经修饰的可变等于加入(中间体,字符串)附加到原始值(X = 1; X + = 3; X是现在4)

尝试这种情况:

button.Click += new System.EventHandler(ButtonClick); 
button1.Click += new System.EventHandler(ButtonClick); 
// And for each button, one of those. 
private void ButtonClick(object sender, System.EventArgs e) 
{ 
// Do whatever you want to do here, you can place the TEXT to be appended on the button, if so: 
lb1SentenceText.Text += sender.Text; 
} 
0
//Simple.Create a global variable and within each button click event do this; 

string yourStrVar = ""; //Must be global 

yourStrVar+= ((Button)sender).Text 
相关问题