2013-02-12 96 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 
相關問題