今天我们继续上一章用户要求另外一个更改,将每次按键按下都有相应的事件发生。作为程序猿我们理所当然的首先想到的就是订阅事件。
对于wpf来说,订阅事件入口定义其实是很简单,有两种方法:
一:
直接通过vs自带的属性功能直接添加事件入口函数名称即可:
即选中按键,在右侧工具栏属性项下选中已选择的元素事件的句柄,在Click输入事件入口函数名称:
之后,编译器会自动为你生成一个入口函数
private void Click_submiit(object sender, RoutedEventArgs e) { }
我们只要在其内加入我们的算法即可;
二:同样,为了装逼,我们也可以自己在AXML编写代码实现订阅事件:
<Button Grid.Row="2" Grid.Column="0" Name="submit" Margin="2" Click="Click_submiit" >View message</Button>
当然这一步只是定义事件函数名称,我们还需要在cs中定义我们的事件函数:
private void Click_submiit(object sender, RoutedEventArgs e) { }
总之,不管我们装逼还是做小白,我们的最终目的是算法。所以算法才是我们最难解决的事情。这里我们就不提用户那些奇葩的要求了。我们按我们自己的讲解的目的是订阅事件这一宗旨为出发点就好了。当然为了,完善事件处理,我们加入一个简单的算法。代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfControls { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public int number = 0; public MainWindow() { InitializeComponent(); } private void Click_submiit(object sender, RoutedEventArgs e) { firstName.Text = number.ToString(); number++; lastName.Text = number.ToString(); } private void Click_clean(object sender, RoutedEventArgs e) { firstName.Text = ""; lastName.Text = ""; number = 0; } } }