2012-10-01 54 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

相关问题