2013-11-24 26 views
0

我該如何限制這些使用?它們綁定到C#Windows應用程序窗體中的按鈕,它正在工作。每當我點擊按鈕1次,它就會顯示textBox2文本+文本,與textBox3文本+女性相同。但是當我點擊它2次它顯示爲(讓我們說textBox2文本是「你好」)你好男人的男人。我如何限制它只有一次,因爲它永遠不會超過1個單詞男人或每行1個字的女人?我如何限制這些使用?

textBox2.Text += " Man"; 
textBox3.Text += " Women"; 

回答

0

這可以最直接地用一個簡單的if語句來完成

textbox2.text = condition? first expression:second expression; 

如果條件評估爲真,它將返回第一個表達式,否則(如果返回false)返回第二個表達式nd表達。

+0

謝謝和其他人試圖幫助。我是C#的新手,所以我需要它簡單,就像這個一樣。 – user3024598

0

可以使用.Tag屬性:

string originalText = textBox2.Tag + ""; 
if (originalText.Length == 0) 
{ 
    originalText = textBox2.Text; 
    textBox2.Tag = originalText; 
} 
textBox2.Text = originalText + " Man"; 

而同爲其他文本框。

爲了使它更易於使用,並且不重複每個文本框的所有線路,使用擴展方法:

public static class Extensions 
{ 
    public static void AddOnce(this TextBox textbox, string text) 
    { 
     string originalText = textbox.Tag + ""; 
     if (originalText.Length == 0) 
     { 
      originalText = textbox.Text; 
      textbox.Tag = originalText; 
     } 
     textbox.Text = originalText + text; 
    } 
} 

然後,它變得異常簡單:

textBox2.AddOnce(" Man"); 
textBox3.AddOnce(" Women"); 
0

存儲數據實例字段:

int maleCount = 0; 
int femaleCount = 0; 

每次有人點擊一個按鈕時,都會增加相應的國家ter並調用以下幫助程序:

void UpdateUI() { 
     textBox2.Text = maleCount == 0 ? "" : " Man"; 
     textBox3.Text = femaleCount == 0 ? "" : " Women"; 
} 

從數據驅動用戶界面。不要直接更改UI。將差異應用於用戶界面非常麻煩並且容易出錯。最好有一個能夠一次更新所有內容的通用幫助函數。

if (!textBox2.Text.EndsWith(" Man")) 
    textBox2.Text += " Man"; 

if (!textBox3.Text.EndsWith(" Women")) 
    textBox3.Text += " Women"; 
1

將這個你按一下按鈕內部處理程序:

textBox2.Text = textBox2.Text.Contains("Man") ? textBox2.Text : textBox2.Text + " Man"; 
textBox3.Text = textBox3.Text.Contains("Women") ? textBox3.Text : textBox3.Text + " Women"; 

它的工作原理是這樣的:

相關問題