2012-10-01 53 views
0

按鍵內鍵我有一個文本塊和幾個按鈕 我想要做的是看看是否最後一個字符是^ 如果是這樣我想下一個所有號碼去標如何處理在另一個按鍵點擊事件在c#

這裏是我做過什麼

private void buttonxn_Click(object sender, RoutedEventArgs e) 
    { 
     textBlock1.Text = textBlock1.Text + "x^"; 

    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     int len=textBlock1.Text.Length; 
     string x = textBlock1.Text.Substring(len-1, 1); 
     if(x=="^") 
     { 
      textBlock1.Text = textBlock1.Text + "\x2070"; 
     } 

     else 
      textBlock1.Text = textBlock1.Text + "1"; 
    } 

但是如果功率是一個數字如何使它適用於這樣纔有助於X^12或者 東西,我試圖讓一個字符串並檢查

 string power ={ "\x2070", "\x00b9", "\x00b2", "\x00b3", "\x2074", "\x2075", "\x2076", "\x2077", "\x2078", "\x2079" }; 

現在所有按鈕的點擊事件中,我可以檢查,而最後一個字符是「權力」,從而壓制也將在電力,直到像任何其它+鍵,下一個數字鍵,按下 - .... 我希望我讓自己清楚....對不起,如果我dal相當新

+0

任何人可以幫助? – goldsmit409

回答

1

你想要的是從您的用戶界面分離您當前的應用程序狀態。這段代碼將是一個簡化的例子,但最好查看這樣做的模式(MVC,MVP,MVVM)。雖然使用這些模式對於非常小的應用程序來說大多是過度的,但從他們身上學到的東西卻非常簡潔。 基本上你想在某些按鈕上切換狀態,如果它們影響其他按鈕的行爲的話。在這個例子中你的+/-...按鈕會切換回默認值。

 public enum EntryState 
     { 
      Default, 
      Power 
     } 

     private EntryState _state = EntryState.Default; 

     private void buttonxn_Click(object sender, RoutedEventArgs e) 
     { 
      textBlock1.Text = textBlock1.Text + "x^"; 
      _state = EntryState.Power; 
     } 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      if (_state == EntryState.Power) 
       textBlock1.Text = textBlock1.Text + "\x2070"; 
      else 
       textBlock1.Text = textBlock1.Text + "1"; 
     } 
+0

謝謝你,幫了很多.... – goldsmit409

相關問題