星空网 > 软件开发 > ASP.net

浅谈Winform事件的实现以及模拟其事件的实现

当我们初学Winform的时候被其神奇的事件功能所吸引,当点击一个按钮时,便会跳到我们所写的点击方法当中去。然而这并不符合我们对方法的理解,究竟.net在后面帮助我们实现了什么。我们怎样模拟其事件的实现呢。下面先从Button的Click方法说起。

1.首先查看设计器自动生成的代码

 

 partial class Form1  {       #region Windows 窗体设计器生成的代码    /// <summary>    /// 设计器支持所需的方法 - 不要    /// 使用代码编辑器修改此方法的内容。    /// </summary>    private void InitializeComponent()    {      //实例化一个按钮      this.button1 = new System.Windows.Forms.Button();      this.SuspendLayout();      //       // button1      //       this.button1.Location = new System.Drawing.Point(491, 100);      this.button1.Name = "button1";      this.button1.Size = new System.Drawing.Size(75, 23);      this.button1.TabIndex = 0;      this.button1.Text = "button1";      this.button1.UseVisualStyleBackColor = true;      //添加点击事件      this.button1.Click += new System.EventHandler(this.button1_Click);          }    #endregion    private System.Windows.Forms.Button button1;}

 

 我们发现了对事件的添加 this.button1.Click += new System.EventHandler(this.button1_Click);

this.button1.Click中的Click是什么呢?我们F12转到定义看一下(注意:Button继承自Control(所有控件父类))
浅谈Winform事件的实现以及模拟其事件的实现
我们发现event,Click是一个事件,然后我们反编译看一下(可以看到+=,-=的实现)
浅谈Winform事件的实现以及模拟其事件的实现

EventHandler转到定义sender事件源(就是被谁引发的),e(事件数据)

浅谈Winform事件的实现以及模拟其事件的实现IIS6LKWIcf6MvMf9AqCIAiGHvUKhmYZMbpECQzDKBzHDnsFQxACwfCVV87wfdZkwXFUkgVVkzRVVGWeA6TI0ZLAKBKrabxuSLopa6akWZJqSaolaZakWJJiZWQ54pXD4cpz7JUzRixP5pWj4Ypn2k/jFdOwTcMydMvQTF0zddXQVl55JvV/rlf622e3/Gfx9X59ixcB4CjAUQxLMoBkWJJhKQZQNLO2C8UQNENA0DAsBTia5dcFOBpw8N8kis68QpIUTpAYQWI4AftBKIZBJfw61ZJdEbJLzPK7oyiCYtlbwnGMxHESx2mCZBlGZFlNYF1DyTtGknMbcdCt5Pv1wqBZHHfiaa88H1YXo9rWuL49bezATlDa2p2192ZtSJbdtLWTtnamze1JYzGqzYfVtF9Ju8mkUx614lEzGtQL/WquVwm7SbCuctAtB52y3y373ZLfLfvdst9L/H4lGFZzw1pu3ChOW1Hajmft0qxbhkaZ95JFv7K6PeuWU1id0rQdT9rRpBVNWtGoURjUct3Ea8d2PW9UA73kqjlTdnVRlViOpxk20yoN/wfg4B8xwwmAF1lBYiWZlxVBVgVVk7JkBTLFVAxThaUbqm6oqiYrqiTJAs+z7LITxDBZ0QxN0xSdeYXaqPVjGEDDfhAADANgrJKBmOUZTmA4geEFIMm8qoqaLhumatmabeu2Yziu6S7L8yzftz3P8jzL96zAtzzX8FwjF9jFnFuJc6WCVyn4tYJf9p2SZyW+U/bs2DYj24g9u1Ur723PTx7fO3Gwd/L4PqwTx/czrxzfO3587+DYzrH97cwre1s7O/OtrXQ+G8/S4XTUG3Zb3Wa1VS03k7hZippxsRkVm1GxUSzU8vlqLlcJw5IflH2/5Pux78eeF7luwXGKrltwnNC2fMPwda3o2EkuSHJBJZ+r5HPVQr4WFepxVC9HjUrcriW9Vq3frvc7jX673mvVOs1qp15pV5N2tdyulJrluBEX68VCNZ+rhEEl9JPAL3lu7Dix4xQsM2foecPIGbqvKjldz+l6XtdDVfVl2RFFixdMjtcAK5KUQJIslAqO0wjCYphCMyoDNIZVKMZgeZUGIkEqNMNhuEhQPE7wGCEQJIvhHEGyOAFQDKCYRNEqw6qAlWkGGohBMQrNsEJimT8oFKVhPwhBGBSD0QuNYSSCEhArKIKjCIEiJIpSKEagCIFmXPh3QuVM147DMQ28gG3cg0KUEAhGYji2/IkM1jLyWfvmTNel7G6CQGVF0HVJVQRF5niW4llSEoCq8Jom6IZk2opuK1rmD1mzZdWSVHPVGxIVU1RMiBhZMSXVyvo4WlaqZqv6Uhu6qxkQLo6mOZrmqJqtLntAimarqqVklT13nX8sWzYrr6x5YfmW7VsZWTbUknnF0XVH02xNtVTVUhRTUS1148X15Ysbxsorvml5tuXbpmeb3rIf5FqGaxqOaTim6VgrtWiWrpm6amqaqcel/8pekVTWi0QvEhWTW92pKMo111xz6aWX/jrfyW/mEiR2yQ6KYZcFKJohN8hC0gxJA5IB1CGvCDTLMwCSZfnEZb5yyCurfOXX7pWNn2XQQ5V5BcMIDGUokgeMxHG6IrmGUnCtJOc2oqCT5Pu14rAZj9rxpFdO+8l8WF2Mqlvj+s60uTNt7qTNXUiWjdpJWztpa3va2BrXF6PafFibDapprzLtJpNOedyKR61o2CgO6wVYg1phUMsPavlBNZdVBd4Ih7XcuF4YNwqTZjFtx7NOad5ZY2XeP+yVZaXd8rRTmnayQZalV/x2bNdzRsXXYlsJddFSOIGnGUBQgFj1AWmGgP8PAI7mBIYTgCCykszLqiCrAow0Vl7ZLN1QdUPTNEVWJFHkWQ6ALHVbTa5QFE1RFAlrYxEURVLU0i4MtQEXigFZw/HQW5LYlVdMU7VsHXrFdU3XMz3IFN/2A9v37SBwgsAOfDv0rXzo5AO7VAySKIzzbiXvVXJeybfLnpX4TmybsWOWXCv2nX67cXx/+8TB7snj+5AsJ9a19ArMV/a293YXe7uL3Z359lY6n4/n6Wg67o8HnUG70aklzSRulKJGVICV0SGXg2RJgiAJgpLnRa4be17J98tBEPt+7PvlMCyHQRIGlVxYyeeqxXwtKjZKUaMcN8pxIym1akm3WR10GsNua9hrDTrNXrvRadY6jYwsraTUKEX1qFAr5qv5XDUXVEK/EgSJ75VcN3Ls2LELllkwzbxp5Ay9aJoF08wbRqiqniR7suJIksULGmBlmpFoWiBJBkFZDOcwXCBIDbA6YHXA6YAzWF4maTjLImCERFAiQfI4IZE0jxM8QbIYTiOISFISSessrzBABaxAUjB9oTGMxjASQaBFiGV7iEZRBsUYFKMRFI6zUChKIAiBIDiK4NngC0KjKImuh0h+dV5Z/8gDQxQUI3HiiFewf49XSBJXVEE3ZE0VNVUQOJplCJGnN71iOIpuK7qt6M4GXCxZs2Qli1tg+iKfESuacyavZGQ5k1fs1StsesVYjZgc8YrlH/KK9e/1irv0imfA2uwHrb2yAZdl1mJBu+i2AcmiWcZ/ba+ccT378yv/ZZeocJzI8CLDCllYslTL+mdu2DCC0cvyJ2+aExheZDiBYXmGXZOFhtYhKZx87r2yIZUNr2BZMwjFEIQiCZ4FqiSaquIYeuhaxcBO8n4jzrXLhV6tOKhHo1Y87pSmvWQ2qCxG1cWotj1pZF6ZNo8wZSdtZjVtbk8gWeqLYX02qKb9StqrpN1k0i6N2/G4taxmPG5G40Y0ahRH9eKoXhjVC6NaYVQvjBtwZqU4aUVpuzTrlGad8ry7DldWNe8nq5r1krRXnnXLh7xS9tuxXcvpiacWTMnXRF1iOUBQNE7S+BGY0oBc5hnQK4KsCLIiKqqkaXByRT3sFQ3mK9ArgshnyQpYzthSJJkZBXbfCILAcRxfDTtn91MERZEUTdI0CcVMMyQDSHCYUKLESTKvapJuKKap2rbuOIbjGDBWgckKrCBwwtANfDsMnGLeC30rKviVUj7Oe0nBrxaDJOeWPKvs2WXPjiyj5Fixa0WeNRl0TxzbPQ7nVw55Ze/4hleOHduBzaDdnXnWD5qP5+koHQ+mw9540Bl2mr1mrVUpN0rFRlyorekQVnO5ahhWgrASBEkYJmFQCcNKLkzCMMmFSS6sFPKVQq5SyNWKhWYpbpbjRjluVcrtatKqJq1a0mlUe+3GsNca9tqjfnvYa/XbjW6zuvRKuZXE9bhYj/K1Qq6aD6u5sBIG1TCshEHZ8yLHjhy7aFsFyyxYZtE0I8sqmmYBekVWPFmxBMHkBY0BOsupDFAYwBMkj5MyzagMa7KCxQkmJ+iAswUJNoY0hhUwQsRJEScFghRJmidIkaJ5gqQRRCRpiWJ0loOvwOMET1IshtPoIa9AiFBwnAXFGASlEBTgOINh1DJfWT2MRFAaxUg0m2jBjnSF/mOXjtO9gmHIKlxBUQLBYK+bOC1fgd0iPMuUn9IrKMIAStMk01Q0TVIVQRQAB0joFV0XDUOybNV0VWNVjnpILYfqMFNOx8oRr7jriGVVG1hRDkcg

我们从上而下进行逆向分析
01.System.Windows.Forms.dll!System.Windows.Forms.Control.OnClick(System.EventArgs e) + 0x62 字节,我们对
System.Windows.Forms.Control.OnClick反编译一下,handler不为空说明事件被订阅,执行
 private void button1_Click(object sender, EventArgs e){}
浅谈Winform事件的实现以及模拟其事件的实现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

03System.Windows.Forms.dll!System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs
mevent = {X = 36 Y = 13 Button = Left}) + 0xac 字节,我们对System.Windows.Forms.Button.OnMouseUp反编译一下,
该方法最后调用Control.OnMouseUp方法执行鼠标弹起的事件
浅谈Winform事件的实现以及模拟其事件的实现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" />

04System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseUp(ref System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button, int clicks) + 0x274 字节我们对System.Windows.Forms.Control.WmMouseUp反编译一下,这是对鼠标事件的判定,我们会惊奇的发现里面有对单击与双击的判定。

浅谈Winform事件的实现以及模拟其事件的实现mvc0cq4yrOlIsTCzBMoc9OpM1s1gSXvvJn3AN0z/i+/Np88M2MVOeUn6VRfqpkIf7ogFPRdj3j/u+zSZUjfXt9dwL+cER5AcvkJ+t81MiKhixdfZLb/TZMZk5BcUQgjiLLEa2zo/FYK0dM79ok2fUqdonTG+nvI2DylMtphmL6UTUmEkUbf2QYvXAa6K8S+N9U4dFbXyTNTsXmnukibF9lk+bn1HNxI955V9frcZ9uYC7v7yc+DKzBO2m7/XcC/nBEeQHL5CfLfOT0aKvH9EmFmPHq1UTJvejqIe2WftJr9SINIaLdeG1H9G7MevtBuWw3/+oDDvdrLyOYggqfj6sPh/1u5+cPmN7pwJBseh9Pyc6nCqD43pFTD/9+bT5GVSM/fVO+Te5VNyXC7j762vmry+VvO3o3Ou5F/KDI8gPXiA/W+VHWs7WR46iJsqaVNNvoh7dfuPbi0nzrUh+sBKO4zIRu8qeGxhRo2zjlajxw/lJrJAW0jWpkR8PRR96IGvCrJfxOPAa8rMC8hMPID94icv8lCmaJM6BKK2DyjUjECQlHMtd0sZphVdomsJ+PZk7LcX06x5N7XXOuGfG5c7yZuFZqkbmmBuQOB9Xhx9VtKr9ZpttY35OVatzqoQIil1t1xf2mybdiy2dopg+RRTIzx6B/MQDyA9e4jI/H1QiStt8tUN4qVFV0KXrkLor6OsPTkuuUj5sVZwowRAUO14mude8ZoQzNcoaie1h1JDok+4gKHa5WYty3QGz/dIm2fsAyM8egfzEA8gPXiA/hwHkZ49AfuIB5AcvkJ/DAPKzRyA/8QDygxfIz2GwH/Jztt3c2h19Vm9ppdx87ZN+zORqZf2AMpYxS3nOF/UfffKIjSA/8QDygxfIz2GwH/JzccDpdbnXXAOpyiCwOK+v25VVLDxdIYm+EN8GstcMh1FmPFG6PEmlgjqoecr1WT0BidlVXCt+z/eEz4xn988H51x5G95MvdJf2CBBUOwYQXQu+slr5FSB/X2jNMYPBfmJB5AfvEB+DoN9kh+rUBO+nUaVn0AxBBU9GzJeJGEIip2jqh+GF/okadGYtV1gX9Gj8PqcvqghNkKHIoGqe16/fARguXxI521sFSMolt0kj/4BbxrNKGJvsj5UL/Hm1wgRFDtXp6rjrb5WO8/6sFlZ1KWI8UNBfuIB5AcvkJ/DYJ/kx6UwtPJtlyrVI76gIepifWr7rNkXNMotm054qklvlBm3e3KirFPnDz+h3R+cYqjv9lrF9lm1fVbnDhr4qo2T1Eu8+TVSIt+YFtub3wrkJx5AfvAC+TkMcM2PuEI9q7bP6r0Lfpf/QZt6TOtj8LUniiX1JtdbcviSfcL7nevP+b3iw/kpk/XIrFc2e2jd2s+FBiPXPqu2z3mDC2bnrNo+2z6iOr5uqmJhRo08xgspQX7iAeQHL5Cfw2CfrP1YhRqkVBi+cmtyvV7j9FXR5YkohqCi1K0X96ea9Eazh8oyv6TJEzYdp1LB0Hu7oi73t4KGOZo6ZevHL9cKrOGNb/KSzaZqYFkrh9UnY/hQkJ94APnBC+TnMNgn+ZnRuKYMjhyyCEGx+2PTrHH50eVHb7UbHjRtfijaqSa9UWVJp8iLWE6DJ7D28DkMQTGEKLpWLVs5fICqX2By9ZkU6eV65YjUkVG2/gmzJmbmFxedPvdTVHhmearnYw6VxJBOkaaTxceLsaQy0eapWwvyEw8gP3iB/GyBIMltVGxx7oNVaVWyi+WrZwVNLJVcpUqPbjFyYoXsdk30slV4qVF24oPvJAY456cYu9ygrlHMOG3WDIqqV+4RW2acvoDU5BMafULb3EIwIDP6hCLTppNHb3y7PeayeQP1vYoj0eNUKhgmL3nIypdPP6kXofL5MaGVNqy90yjvVLtfV649R1GJrNcZsFi9b0dsnpD7JirMoCpu10vz+qyyKc2xCtnZDbnaBuQHKRGWSfx9fesP1sga844My1OK140vPF+nyC7HEBTLZ/s8086bJOwc3do2pMqtlSauH3m/gPzgBfKzhWqTwuF6VLW6aLs2YM+vWjPO0VIxRTaj4a+eezSDauLrbJcImz9n7rhn1u7IWklahUrom6XTN2w7+ni45kf0jOmYVE5TeN6VI9/ON+u7WYbw+YfSu20WmW6rHT/Ihn0/T0bs9UPqNasmlQqGyn4Fxc41aytaZag0UFQvzOmwjk1p2vi286Q1JwVPbTIJ+co2iTe/RvZkVHOhUjnh8Pf0KB70WWVTmhMNuupB7Ykt/oE2gvwkEpV9WveTOnFKgy6/dvWvOmvMKxPpz6z7myTKug1eZo8cQYUvp/ycgcjX53qvha31Vrd/gl9i7QXID14gPxiCYkiz2Te3sEZgcWFxcTawOmRuMWQ1uq5XrE6VWqkaVTtzq0Rp1WquxXO/QpRBNfbw9Emb/y9PQtU73hFXt/lkdVncalNyzIvCbeC79pNIFCURsEtRB16XSWbfN4sRFEMIknqlp61lu5OorsvPkWIsYd1fYKWCobK/m/TVdoqPohgqDfZwLf1DimMkMZVtTS+Pzo+YMKxLKlk98Dqn0zzKVCeg2K0+q2xKg6DCNyzX6GisF5OF/Nxi+lV6t86/4J9flIhNaSXLc++YlzG8PidnGjRylT2pBENQab3BQ61dfejhmGMs5r/2zwzygxfIT5RS8fVGZR5NlUdT5dHMbLvzXeS2Kq9JnoRiSQRhEmF1YXeN4R1lapJR7EKTZVxiPknAMqjGbq4+sRg7UoJFj3l1wPyyw0Cb1OXRVO+GjaXtyuPFovc819i4dvnlVDfrZck73TqxT/b9LOdHQZa7OGLrk3ZVQb8Rk1pTtk3sh498q1QwVPacEiGJO/2yQRJe+3nG87In5O959vIa8ZES7ARRhKDYCYosv16GrP7uR1jMsOZSRMhqfrATjXqVz1dUGdOFlOI8P4nl2imP6y4JS203s8ZVZynSJILwYqMqj6YqxGbEAl141l3Z/fZkZHpyypRHU+V1GHhOb93K12cZyvd0jqgTS/bwPe8A5AcvkJ8odTq11V3Vry/s1xf224XOyO1yll1ucl5dNzJJyXTON/XIEBTLHnYZ7b5hiXNC7Tc6fEMS57DcxRJbzi+PfGLIK5ZZC/v1hf2Gdpl7aExzplzeIHCUDoRfS99hmFeKDSd3+rXcZ/nBEBQ7Xil/2WvXBRfketegxHRp6wljzM8VFLvSqMqtDucHuzLoaGgVZdJNIpbmJFlW0Ko8imLJpZKTJAxZzs95urmwVRa+YuxKfhCCtNHgb2yB/HxImZTAdNrcvgGJc0Q83SNzYSb362oFzTrbMqKvls8qpabCUbvF4364vEkgtyMyP5cy7VazqzDyVVqrU5n0Kdb4PyHID14gP1HqdGqDLTNyV9NrtIZvn2vUjk2Z142cz/bNLy4MTqpTUawIc+eXYwi6uvaDoBhSKV4tVo97YCSy8/bJqKWUKj3bN02krR6G8FQYELI3+flkjPZhfpB6vXVmsYGGISj2Qrow4/QW1G++CS6zw2RTrf/rXaNSwVD5jaGQzejMLsdIulAoFMImwlty5D2eee6UtapPGX20Qr3Em99mYLJX96ut5udjxHN+8rtM+V0mpcV8nqIanFAnlEmq2LbMClmT0ZtfvrzxrUItt1ovbpj2Gt0sFq6/INa+BfnBC+Rn1bFqVYfYxVC5GSo3Q+W3zs4JIrfd/ZNrrm2aWq1sG9OWyoNV7eIkiq5hJLJRe01+oq3ND7XP0szRZldKVvYDPRUGBgd2vmMW3/wcK1V1aH32uSBrRJnZoCqgawtHbeMC02ni6hrGk3Ebgbb5pv/MDpNeut3az/FKeQPmeFkZvisuFjiLWqNO2lap6de4anpU0Qccruz7QVDsSq+VqfaYPIGO3o8+yiOe84OgGELWqV1OdMiCSa3Pew39QnuM+Xk85hjjmgro2hUknkurMp3G/RNtBvKDF8hPxNFSMYnnYqk9m+aHoZp+S46MeaRE+KDPcKNCVCoPVrVL79LVGcsnx4w5P5qzxcJHg5bq9sgK0IHOD4JiSInoWosirVgYzk9+o/RYzNMmVUhv1274rc/HSCAIz1WIo9d+MuuVp0rXjJNFVWy/C2pTkJ+d5adG5Cnt09JkziK6toCufd5r4Jn9tBEN5AdEg/xsZf3GtyMEUXKp8AiKHa8zlXSIERQrlQerOsRJRFFqWUROs7lfYEgjiVKrFL26WSVbFvkveY97fj5yBN3s/GwVVYqgGFKrtcy4H6MYgmLPRAc8P4cU5Edps2ZTNaMs7SmKjMqxZVbI6K6l2cDCzPzS/PyCL7A477BmrJ3qCEE/oLSmE7DjVBPaKTmCYukdDkxmOR/biY4+P8gPXiA/GIKKrrZrN+wjXXvogd5FYju6eeZc8uoOjFJ5sKpbWcaxD0icYSuHHgxMWW/XiM/TtZFd7hv2/SAohhBljWJbfjmGoGKyPgj52YfiPT+1BpvbN6D0mm3eQZlLpHJkVkieT5ovE5fXfojyks518624UO2vapUiKHa0REhk2l/Stb0a7+vGffqjHwTygx/ID4agwgyqIm/9QaKrB16/GLJgqulcivA4UXQyan9GeN9P9FPFuPEtkh8UOx45OFtM1gdp7TEdi7UpyM8eifP8pHXZtGw5subQg8hcmjXmZQzLHo0YHpaumW+v9DqU0tXTy55s0smcsx0dklhOcYQXyA9eID8Rx0mSbn0gfBEzqydg9czPzC84lq9pZlFucmjW7vOzTFxtDIYPEtsZyM8eifP83J+wlVVhCEUlFBqj83OEILrH8vEYyvR6nWjG87wsUqDEatUI17Ay+akqGU3la+FMW1xzNT3y9Irtfn2MI8gPXiA/WyjTjS7v+0kly991bXJU9EflR660k0ZNpFFTr8pNbQnnR3whfBafcjXPN1NSvfN3+2nzM6qe+DGv/Jtr1bgvF3D3l5cTX2aWFHXT93ru3Yf5OVYmqxhQIyiGUFQjXPObblUDf/rVoIE0aqqctLTy7e0CezvbUMCZlQg0iSiGoNL3E6a71WIExVLIsndDpiauraBRgqBYSo22Tenz2d2kURNp1JBH3vmK/l6A/OAF8rPepX6H2j6rdgbVy/nZSuz5yZycYXF1OVR5DlVRxnO2d4WPABY+5XrDrzVvNCfv4j1/2vywjIzkAsqvs8p/KuThvmjA1/eP+77NJlSN9+313LsP83OxRpVLFSMohpQI08oldyedzCnT5WpZDlWeXS1ZPTESUXKJLDqKYvfZ9seVotx+u9o+OyV3PG6RpUX9jPpoqfhynZwinx1k6DL22TEIkB+8QH42JWsyzVQ2fWC0V3z/y9o1Q87VGnr4huMb8pPVoTmzxZMklksJfdqTu/sd+KfND8fMfEFr/+Wl0j89G/m5aAr3pQNefnov+PZG/Z9vkYaV43s99+7D/MQPyA9eID+HwSfPz6h6/MiDym9yqT++4+L+6XDxc9HU94/7fpVJfNvRwTbt+dwL+cER5AcvkJ/D4JPnh2NmtgmGvr9B+vpa9X+8YeH+AT+zn4um/vCw55eXSnNJjUwD4zPMvZAfHEF+8AL5OQz2Ij9sE6N8qOevd8t/lVn6m1uNf3zY/f3j/u8fDxx2fd/da//qCuXbbMJVYsOwas83u4VBfnAE+cEL5Ocw2Iv8cMxMtonZgQ0XNLWlvar5Ma/ij7llh94Pt0jHHpGvEhvKh7rHtROfbe6F/OAI8oMXyM9hsEf5CWObGJP6yXHtxFgcGNdOTOgmmQbGZ9jfEw3ygyPID14gP4fBnuYHfAaQHxxBfvAC+TkMID8HHeQHR5AfvEB+DgPIz0EH+cER5AcvkJ/YSa41y5OLMQTFUiuklyt3cgKro0TZ+fJPf8YRyM9BB/nZjfNU5TXyzk8oB/nBC+Tng8SPupRJKIagijGzN79WjKDYnV6bwurI3TByQok4JXxCEaL4Zq0UQbGTZFn4jAY3us1jKjfLMMedMp4u/VTvLQLys8+1CtkDStY2hzNAfnauRFjIc7f1bn4t3VhAfvAC+fkg6YRzrpYuR1BZk9RxmYghxcIChrO3X7Fx5Ayq2Rxa+TPzBsXyR1wzoVAoFGJxtEl79g2E/Oxz9Xz2pVpBHZ+91Qg7yE8iUSEIz1uhJTFmPLPteZsyaHqFPxRaWhyeVEfmw2qN2rMQCoVCs75HO1qV34FUipzrjnw9ptXmZAJ2udWoCYRCoZDN6LxRuaOnLREWcqbRxtWzyGc0m17RPuL6uZAfvEB+Pow85b5HwVbyk0CQNMm91HFDYb++cNjUKZxuHlOnhuf75VOOnq5TjU2ZERTLH7HX0zcJ1acF+dn/BlSs533cp908Ko/NNK5/9GPzc4lucy4tyaXmDBKWSjWIPQsGheHstpNk9DpCoSVMaDxbjCEodqHNaJlbWpwNVHVKY3zRT6Neb51ZtFmd18oiQ87TraGQ/1HZTp+wRFgo8Eo07pWrPg5InJ2T+tSYz6MI+cEL5OfD1uUnqc7YjZnzR6bZk6q8RnkSATtaJgr/jxLyA7bBNjG7Zax3Q5wbzfxW0ZptcR+XnwrFmCU4H5x9WytEUAwpFj5jOH0LC3T6dv/lD+fHYXBcrRQiqPDhyLRvKRT0zxE/ZkXhE9g8P+6bO37CDWs/HwvygxfIz4etyw8qD5bUYwiKoZJALV1yJPobvll+mntVqWWiCJK4ZNR8veYTf+EhPwdLt4x1rZH/fog7qWeGI/RR+bnYajDMhmbM5pXTqGd3W6xzS0a1Kb1UlFomSikVHicII7McURieRTN6HaFQKOT23KsTI6Xicuns4tJSdH6OEUQrM2rkoiHFwtRyCUE8I2apEBQ7WiJMKRNVaRe6R1QrVy9NJq5OlUoUJaw93XvS8qPJpZG3sU1+kkpFqWWi4wTh8dLlJyzd+jidOt3DOlFqmSi1XIJyHCUt8vAk18ftlVThkRj+GiE/uIP8fJCoXrKan5sN6vrlnZwpFeoxo/tx1ep2883yMy1Uu9oF9m6Zx+X0twvs7QJ7bffOd5NCfj4JtonJNjFZRibTyGQYmJN65oSeOa5jjuuYY1rmqJY5omEOa5hDauagijmoYg4omf1KVp+C1Stn9chZPTJWl4zVJWXRpaxOCatDzGoXs9vErDYRq1XEognZLRi7GWM3TbEbp9gNAnY9n13PZ1N57Doeu5bLruGwyxmc60389CoBYZwzrvu4/Nzrd3hCIZ9UuzIkuVGv8y16vDOdTLs2sOjzzsmsPh7mGFL6PDOztA5ZOD+L7oBnfo7aLkskSeiKOXVwcSU/Z1sMbGvAonO0C516X1DA1WcSMaRKRce87lAonJ+MBg1dFwgtLuenWHi922pdmJsU2NsFLsPCUmh29l3zylqI5PmEXe6Y6Rfae8Q+g91b36vYLj8kadHYtHVpSWnwaqb9QwL7pGF2zul51yE/vnl+rFrv7BBmb+fbXrcp34xZ2gX2doEDcy9MTW15fRPIz74C+fkgafGwNqkEQ1BZu9L1kiZLXXmoWPSq33i1anVVZmN+nnBcNLoCQbET9VqFdJMrdh+O/Kwsyif1zDFdZPE9pGYOqJj9SmavgtUjZ3XJWHQpq13MahOzWoXsFozVNMVuFLDCy+VaHruGw65ic8gsTiWDU87glE1yiOMcwji3ZJSDjnCKRriFQ9x3g9w3A9xX/dwXfdznvdyCHm5BN+9xF+8hnfegg3e/nXevjXe3lXenlXezhX+jhZfbzL/WyM9p4F+p52dRBZfrBJdq+Rdq+BnVgos1gku1/Mw6QVYdP4squFLPz6nnX23kX2vkX2/i5zbzb7bwb7Xw77Ty7rby8tr499p5+R28+528h528R3Teky7e025eQQ/vWQ/3eS/3ZR/3VT/39QD3zQD37RD33RD3/TC3aISLjnCKx7iEcU7pOIc4wSmb5JRPcioYnEomu6CHh6BTDzp5k/qPy8+TCfdsKKRmRf0npk6n9iz4PbNPquU9nvnQXIA2oj5ZjJ2s03CnF0J2cxqKZfQ6gmo7Nrs0xVCdJOsnNV6WN7icH+W4f9GktmWVY0ix8DzdGgotcjH9aRRLKtOrlvODoFjmsHslP8mV8gn7olWiSUYxBBWer9MI3HPlrZFLKT5ju73zC9XtkoRi7ChR1q4PhIIzr8jbb3xTckKhUGCW2q1MRLHkai3fPe+Z9j6u2uzvgaAfNTgur79ynYiommtr+7ivD+QHL5CfD0spl6RTpOkU45DOdpMiTV9DcjLqKOoMqmlQaMqskl5v0zEwM4Jiz1lOIk32WfJTQmZyKhgc0iSnbIJDHOcQxjglo1x0lPM+vOAeiiy4X/ZxX/Ryn/dwn3Zzn3RxH9N5Dzt5Dzp4+e28e+28vFb+nVbebRrvZjM/t5l/vYl/tYGf08DPpgqy6viX6wSZNYKLNYKMasH5KsE5iuAsWZBGFqRVCs6QBWfJgvMUQUZVeMkuyKwTZFMFVxoEVxv415v4N5r5N1v4t2m8u628vHZefjvvQSfvEZ3/pIv7tJv3rIf3opf7sp/7eoD7djCy+EZHuYRRDmGMQ5zgkCJLbQ6FxanmcGq4bCqP3cBnNwhYTVPsFiGrVcRqE7E6JCy6lNUtY/XIWf0K1oCSOahmjmiYY1rmuI45oWcyjEzW5z2f2zpsE3NUyywd5+Q28elSVnjgR+Xn6YR7NhRSMWVb5cdmdd4iYQiKIZWKAWMgvHDP6HXMKPTN2mDIbL3U6WCJHSPOQDg/1xm+0NJ834h6eZOamOoIuW2eW+Tt8pNYLuszBpf05nSyJGntfv4jJMWILRgIuJ9EviYyosAzEwqxRqUfzI9Za88uj7SEoJgLBQL1mx5UXaIbgfwccJCfDysX+xkSO5VlHdX5R0V2KtvK0PsHMBuVY+MafNUdUUd8Uk18k7uBZaVhTqnUjKBYldDziCr+TPlhcShsThWbU8Nh13DZtVx2HY9N5bHr+ewGAbtRwG6aYjdj7BaMTROyW0XsNhGrXczukLA6JSy6lNUliyy1exWsPgWrX8kaULEGVawhNXNYzRzRMGTeVDIAACAASURBVEe1qwvxST2TYWAyjUyWkck2Mdl4/+sfFBN6ZgWD84jOI05wx7Srwz8qP7d6bNOLaza+JYU3vrl9+eTt8uOT60ow/3zATRfP9Y7oO+3h/MjI+mBodo7UsdqzN6pQyD9T0CjZJj8IKrzarquVz4bm58NfkNvkyOQn6rUKz+L8/GwPy0qNUtL2UfnBHvFnQwvz0buaVtVZ1Z4ZOmfN81NZNo5zHvJzUEB+YsiPwF1IkyIoVjBmL2iUICXCwglbXp0YKRWTGLbr1Zvs+zlSIjxFEiGopl/nyC5b/kIe3o1vIBY9ctbNZn7hMHdUy1z3E9SdHHpgMqUtD8nqsljnlmx2+2V02/xItXcHbI75xRl/sKZD1bbb/GAIiiEEcTpF+ozpDiyGfHbP/ZX/bHkWAwHfw/IN7//T5Ye7ydYIeR3DcOIjL10P+cEL5GeX+bHmULb8yd6ZUc/AUGS7AeQnnoW3tl2pFzRPsTc998HHHXhdqWBYg/PB2VfV4QPDhE8nnN6FxalJJfKh/FxsN+pmlnw+zwOSbDk/4guD7vn5YPew6mikKLI+T8hmdl0rj2x8k3PU4Ze+PuFZyU861WR0ujNJywenUYzGhYWJEdXKO1yYXyhtijx6tFR8uU52qgRD6vTGmUW7zZVLinyc7H57aMF5fTk/Vp3jSkX4bUjrtIHNf5lULCplm86iWEKZJDt8up0S0aVayXEUQ1Dx+2HdOdJHnNoK8oMXyM8nyM/ZGlnyhqlS67RsuSlzedv02SadRmGB/MSnNjG7nMGZ0G85wsf+7DS7zaJfWlLJLRcrhCdoJplr3qS25JRhH8xPYpWa7Zh3aI2nUVmbPbAwG6B0SpEyRa91wTPtK20SIiWixwxnKDTf2qdIQrFEooLhDc1MO7JR7HStetKxEFpa1BicL2tEZ2o08rlFldxyk4QhKHam1WKaDdK6I79yy+6xu5eWVHLLWZLwKEFUyPWY9bacMgwpldbpgoHZQH2XPAHFztfpGNNBLV+ZvJyfoH+ua1iJFAtvD9mnA4sWtfUSaf3HT2+3MIdFCIql1Gi4evfjOhFClFHVnopWWQKKnW81DItt2cRYCwT5wQvkZxvil0ynyRPwBhY9/qDVE3DNLbj8Qasn4JlbcPqCVm/QO7cw7QtO++d6RzVrDg8lydo55rNRP+TOoOn1KivkJz6xPnS8w8efdEd4vk4j9i86fUHH7IJcarlSjiFESa3EP7O4tLCw6NTZkglYjTo4O78UCi3qbAGda2ExOM8U2Ietc0KW8j3f619YCi0t+ZzuvApRMlnZopqZnQ1avUH/fJDeJkla/gXP3X6bY37R5Qk4LO4SoT8wGyS2SU4QsDM1GvlcKBRa8vgCVk9gem5RKjGeXdnwVSy8UKcR+xenfUGrN2gzTt+tiWwnOE6SvBL45+bmbZ7A9Mzc4Lhu+SyISk5oyeaZc3uDVk/QG1iUcjVnytZX5GKTHvP40eVDfkpUC010MYJiGZ32Qb4+FcWOkKSNKncpJdZf10F+8AL52ROZTbrb9Wvm/jP1yrdNsr14LcjPIQCnHEVQLJwfudScse05eU/VKIm96u2fKoMiSYST7ux7kJ/DAPJz0H1UftCE2wiKHX/NfJ3yCEGxkwXDBWkvERQ7/6D7fkYRgmKZd1rCN65dr72dVY6g2O2s8mvXaxEUu59RlHmnJXzj/INuBMUK0l6eLBhGUOx1yqPjr5krz4+gWNmPOeEblB8uhG/U/+5U+Abtq8Twja5f/LjuxsD/+4d1Q1ZGXpl85QlXXgI98aCM6XL4fZ53xRMy8/2oDxW+sfKhPjnID14gP4cB5Oeg+9j83M4qt/3N31b8Jet2Vrn2v/0D9bu07JsNkr//59YvE84/6Ob+j39r/TIh5cX42P/6uvff/4SgWO+//2nsf32d8mK89csE7v/4t/MPulu/TJD8/T9n32ygfpem/W//cDurvOIvWba/+dvbWeVowm3ff/4vj8+9fXniqe1v/uvrlEcP099r/u4fCUjurewKzd/9I+WHC9m3GkX/8C9N36acf9DN/p//p+sXP55/0D38r78d/tffpr4Y6/rFj+z/+X/OP+hu+jZF9A//kn2rkfLDBdE//Mut7AoCkqv5u398mP7+dcoj29/815cnnr5OeeT7z/8FPXbn5cVC/9/+XdWP2Y+vVxqiPhT1u7ToDwX5OTQgP4cB5Oeg+9iNbw2/PbnuRtuvE8I3ev6/P4dvDP/rb8M3GP/8y3VDVsZZmWrjE1Z9n4GgWNJrRngF5fTTwaJjd8I3XqU+RlAs437nk7OvERTLvtV47xIBQbEbOZQbORQExe5dImTfakRQ7MnZ1xn3OxEUe5X6OHyj6Nid008HERQr+zEn6TUDiVoBCr9ijB/qE4L84AXycxhAfg462PeDI8gPXiA/hwHk56CD/OAI8oMXyM9hAPk56CA/OIL84AXycxhAfg46yA+OID94gfwcBpCfgw7ygyPID14gP4cB5Oeg23f5ISmfdCqSYhy5WHSrU/eu+UNnGSiTv+rTnFn9Naj44bAxr+YjTs62RyA/eIH8HAaQn4Nu3+Wnzqp3eu7FeFX4UmmTytXfuXpVnjP16kr6+ov0nOuZnpmZLWqRLA9RDM/N0XoVG8+X+JlBfvAC+TkMID8H3T7MD1NlPrdylyBKW7mwG0FMwrxWTyBK0Btc8HgDawcGujqinrBEUqWZHeqTIKi42hgUY9pUVDE8N/OW/Enf9o5AfvAC+TkMID8HHe75uTew9rptmM/g9Lat3JX4TGrr7eo1G8rSmvUrF3nj2v0M7urkr1tlCSh2mrR6LZLTNKNMY7mIYkipctzrRykYEpWftDp5Cn5fH8gPXiA/hwHk56DDPT9p1fIcapQuB2awP4geUic/vfbK1jmjrkGG/hpVnkNVtaidtc3K8JhVhlDfmHLNfqNiUSHX49WYEDR8vZ+g2T6rts/5Fhdt07Nq+6zRE+gaUcW6q+lTg/zgBfJzGEB+Djrc87Peuo1vm9kmP+ErIKxIISvG7AtGm+02it0eMBEbwo+u2fiWUi6G/MQbyM9hAPk56PZ/flJqtFVjuugVoKx2A2nURBo1kUYtkxbfyKR5+a7pVlX0ZjrRc7aNzHAIeZoEouR9j/Zk5HoKsO8n3kF+DgPIz0GHZ35IymHL7LqjBqy+hbn5BXvUEKXSfL9D/aQislpzcdDp8AW3OvSAKzKfWz7A+kKfhdIkvtZjFfI0qWXSK3XiI5GXhvzEO8jPYQD5OejwX/shifPbNLeqlg8WiF77KRPnN6tyyNv8QEdcJrEVLl+W9I0qROuTX2tUpBMwhCgr7ZYhKHalxyrkaY6Xy27TVHkRRkFwrrFblUdT5Y04eAr7/RiP8/7UID94gfwcBpCfgw7//JRKq6SutpUf5azJj3zQ6q2qjdQlmaRqkjgH1nDJXLNiWeSuyBtSaxxlQ4a6cU3q8vOH85NCUb7u1xdGWKXzgZ4xfWG/vpAmPUYSnSOKPuUnihnkBy+Qn8MA8nPQ7Y/8OIqW12A25Mf5dHVkYXKZKHUNKUVmJ1Ak4buoJtTaIz2KYokE4fJ2tkh+1r4obHyLd4crPxcJPzwdikPf5bVBfg60A5UfDEGx3KFphsq9zCO1zyg1nvBdhX/9kW+QH7CpQ5WfLy4UxzPc/wnAjuGenxSKYsDsRWPOzxrF4tvd2jfLxxpk0PTXNuwogvyAjQ5PfgA4uHDPD4KKH7cbJ+cXQ+E/Tusrus0ZWvnj2zw/9XpfcGnaF6yaNLwp2e75IT9gI8gPAPjbB/nZGkGC9ii3GSG1QnWdKj2y7ZOca9SiNMnagdISbPpxNd6fDvKDH8gPAPjb1/k57CA/eIH8AIA/yA/kJw5BfgDAH+QH8hOHID8A4A/yA/mJQ5AfAPAH+YH8xCHIDwD4g/xAfuIQ5AcA/EF+ID9xCPIDAP4gP5CfOAT5AQB/kB/ITxyC/ACAP8gP5CcOQX4AwB/kB/IThyA/AOAP8gP5iUOQHwDwB/mB/MQhyA8A+IP8QH7iEOQHAPxBfiA/cQjyAwD+ID+QnzgE+QEAf5AfyE8cgvwAgD/ID+QnDkF+AMAf5AfyE4cgPwDgL5yf3+d3fP+478D54cnAX19Nfv+4H/d3sjO/vkyC/OAC8gMA/sL5OaB+dbns9/c7v7hIwP2d7BjkBxeQHwDArgypWS/7uJMG/N8JOFggPwCAXYH8gJ2B/AAAdgXyA3YG8gMA2BXID9gZyA8AYFcgP2BnID8AgF2B/ICdgfwAAHYF8gN2BvIDANgVyA/YGcgPAGBXID9gZyA/AIBdgfyAnYH8AAB2BfIDdgbyAwDYFcgP2BnIDwBgVyA/YGcgPwCAXYH8gJ2B/AAAdgXyA3YG8gMA2BXID9gZyA8AYFcgP2BnID8AgF2B/ICdgfwAAHYF8gN2BvIDANgVyA/YGcgPAGBXts8PwzA5rBzvk472SMBe6ZWODirGJnSTbBMD9/khdpAfAMCubJUftonRwh3MrWg88qDym2zCFxeKwR756nLJn2+TLhdTyaO9bBP+s0SMID8AgF3ZKj81E31/zC37dVbZ7/M7/vxi/D9es/7jDdgTf3k18cfHfV/lUL7NJtyhNLGMB2MdCPIDANiVjflhmxh1jP5fXy755kb9j285CIqBz+CnQt7v7tJ+nUl4QWtnGg5AgSA/AIBd2ZiffvlY4hPylzmUH9+ycV8ox5Wf3wu+y2v/821SC28Q9xnjgyA/AIBd2Zgf0mDPV1mEP78YR4rwXyLHm58KeV9eqXxQ14L7jPFBkB8AwK5szM+DOtqvs8qhPbj4uUjwm1tNxx9TcJ8xPgjyAwDYlY35ySE2fHO9FvcFcXz6uWjqu3vtf8gl4j5jfBDkBwCwKxvzk1Vc/20uFfcFcXz6uWjqu/zO3+SU4j5jfBDkBwCwK5CffQXyAwCIF5CffQXyAwCIF5CffQXyAwCIF5CffQXyAwCIF5CffQXyAwCIF3uSn1IxVeGuapBufKiA5+4ZUIVvJxCEKUThURRDyHqRwZxRvGbMIyXC1BpVYZP42BavkjrglkvNaYTY3lKZvNPgfLf9yMVYClGUVBK+q5W7fc8aJAiKnaqW3a6WJqwZU5hCFKWWRamV3SEKjyyPcI1uFmI6yA8AAGzp0+bnMlWRRsSQUjGV7XjdLjlaKrrXoUkvFa7mh+nuGw3nR/iU49EodOkohqCqyRnf63ppTpUwmSR7PWwijZrILFu7wN4uMN8kbZGffheDrUteiVaZ4i5VtG1+fBO98u3ef6WiievmKy03qsQIKmtSOJ6QRUeKhSUs16DUnB01ZnK1ksqx98s9cpO3U2AX2AJ85XQ7z3ilQvykx/CwCrtGN3QPqSE/AACwpU+bn7x+6xhLg5SKqWxrDkV0rs4wYXAX1gsvNOhrRjXHUKyAOV1LjzTgzoR7rFdEYtmzK9UjHse1KvWUyU1olrdOOe41yS9Vbt2SSH7cPn9AY59VhzmDDrvnyVYFKpN3GqZfrNwliF71aDM2CZuoGHPV0uUIKmvCrJeJWFKHrWVAkbTZalNGo7ZpQp9YjKF8TyFNihBESeWyHoUjn4hdoxuauhWQHwAA2NIn3vhWpRY4Zsj14fxIXnHd75tECIpl0yw6iyOFsD4/w3TsTp+lrc884pkm9Zmq2qSpFHkj23q69MOvldrvGp5UJ27x6NV+m94VsHqWeYMz8wtuT9QQT0DMiaygJBDF6RTpWiq6zHG/TtMn0oeHvOL7pXLrxTIMQbHUckk6RXqn00DnmjKrpBSRr7JHSZqyX6couqTWKyjkBwAAPuQT54cgKRjU3yKLqWxrfrehvEeRhGIIimXTzN1cfWLxJvlJpcjuVOtGfE60QXGLpry4Nj9ZzcoT0c9PlFwp3yQ/SRT5nUrhdm9s3drPWqea9FSWNYI/rfbMTbIcYquPbfJOKrxjfCuVZX3XJDpJlpwrFSIEUV63kcqydkm8CpO7gWVlmecYEjuVZS0Z0g9BfgAAIBafMD/HSuXD1siqhm9uwR1YcHkCVs9MfbN4q/yw5NNWT8DqmZ9dXHB5g+7Zea3OJrAu2L2RFRT33AKXr01deRWyVuaLPKQVG0o4LqMnYPUE7P55n9+Zt9P8RLvPnO4Z0SSh2j6l9SpZfKlWPWoLWD3+4qr1Y17vs3WMaRLQ5Y1vKHaErJhU2iA/AADwYXt05FsDx5pDCe+GEeW1SLZZ+0FQUal8ZmbGR2iSJpZgKxvfUinyQcyaTMCOV4pTVp65QqsOzT2vXP+K+SOO8aHVA+2OkyTZVHlOtGbdqMVdGT2kRdev9XUPyyNH1hULz1bJijF/74Q6BcUQVNcjt2ZH1rSEz9guuy9Q0hD9oqIyzF3UIkGi8oOUy4va5AjkBwAAPmgv8pNQJmnl2bIrhQiKJVeIz5Zst/HteKWyV+xRzHq6WfZOtj5zQ37WPrmSGUN+0mrVhFETSTzdOWoihU3axC7/wPLdCo61dkh7qUyYRpWfQDGkVtvOt9VOmp/WRrbgXRvwNI4pV9e6UOHdHsN1yur2vexuZ9tkZMPgan5Q4fUuY7vAPqLxdPVBfgAAYGufLj/iGsPqfn7/3ILDG7B6AnZfcNpoebx1fq506MpaTCMexw2CvMc+1zOo6ca2zk+lVhNDfiLqTGKD81aVEEHXb3xLo1kxhfXC8m6k+x3adLIk6rXEVEeof1iZGnUE

好了到目前为止我们已经对Winform事件有了一定的了解,那我们如何借助这个思想来实现我们自己的事件处理呢?

接下来我们模拟一个场景,我们有一个文本文件,我们监听文件,如果文本文件发生改变(相当于上面所说的鼠标监听触发事件),触发事件向管理员和用户发一条信息提示(这里的人相当于button对象,向不同人发模拟Winform不同控件的click事件)。利用刚才的Winform事件技术实现一下;

1首先定义一个事件的委托

 

 //处理文件发生变化后的委托声明  public delegate void MonitorEventHandler(object sender, EventArgs e);

 

2事件传递的事件数据

//事件数据类    继承自EventArgs  public class MsgEventArgs : EventArgs  {    /// <summary>    ///     /// </summary>    /// <param name="changeTime">修改时间</param>    /// <param name="toSend">提示信息</param>    public MsgEventArgs(DateTime changeTime, string toSend)    {      this.ChangeTime = changeTime;      this.ToSend = toSend;    }    // 修改时间    public DateTime ChangeTime { get; set; }    // 提示信息    public string ToSend { get; set; }  }

3 MonitorText类监控文件类(相当于上面讲的鼠标监听类)

 public class MonitorText  {    //定义监控文本事件    public event MonitorEventHandler MonitorEvent;    //上次文件更新时间用于判断文件是否修改过    private DateTime _lastWriteTime = File.GetLastWriteTime(@"C:\Users\HHY\Desktop\1.txt");    public MonitorText()    {    }    // 文件更新调用    protected virtual void OnTextChange(MsgEventArgs e)    {      if (MonitorEvent != null)      {        //不为空,处理事件        MonitorEvent(this, e);      }    }    //事件监听的方法    public void BeginMonitor()    {      DateTime bCurrentTime;      while (true)      {        bCurrentTime = File.GetLastWriteTime(@"C:\Users\HHY\Desktop\1.txt");        if (bCurrentTime != _lastWriteTime)        {          _lastWriteTime = bCurrentTime;          MsgEventArgs msg = new MsgEventArgs(bCurrentTime,"文本改变了");          OnTextChange(msg);        }
//0.1秒监控一次 Thread.Sleep(100); } } }

4管理员类(相对于Button类)

public class Administrator  {   //管理员事件处理方法    public void OnTextChange(object Sender, EventArgs e)    {      Console.WriteLine("尊敬的管理员:"+DateTime.Now.ToString() + ": 文件发生改变.");    }  }

5用户类(相对于Button类以外的控件类)

public class User  {    //用户事件处理方法    public void OnTextChange(object Sender, EventArgs e)    {      Console.WriteLine("尊敬的用户:" + DateTime.Now.ToString() + ": 文件发生改变.");    }  }

6程序的Main方法

 class Program  {    //定义监控文本对象    static MonitorText MonitorTextEventSource;    static void Main(string[] args)    {          MonitorTextEventSource = new MonitorText();      //1. 启动后台线程添加监视事件      var thrd = new Thread(MonitorTextEventSource.BeginMonitor);      thrd.IsBackground = true;      thrd.Start();      //2实例化管理员类      Administrator ad = new Administrator();      //3实例化用户类      User user = new User();      //4订阅事件      MonitorTextEventSource.MonitorEvent += ad.OnTextChange;      MonitorTextEventSource.MonitorEvent += user.OnTextChange;      Console.ReadLine();    }  }

运行程序

浅谈Winform事件的实现以及模拟其事件的实现浅谈Winform事件的实现以及模拟其事件的实现

好了到现在,我们的模拟完成了,大体将Winform事件的流程实现了一遍,由于自己本身也也是一个小白理解的不到位的地方请大家指出来,我把程序源码放在了下面,大家可以调试运行一下。

源码地址:http://pan.baidu.com/s/1bRelEQ












 




原标题:浅谈Winform事件的实现以及模拟其事件的实现

关键词:winform

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

潜力产品挖掘:https://www.goluckyvip.com/tag/5638.html
跟卖原理:https://www.goluckyvip.com/tag/5639.html
将进行投资:https://www.goluckyvip.com/tag/564.html
德国网购情况:https://www.goluckyvip.com/tag/5640.html
吹风机事件:https://www.goluckyvip.com/tag/5641.html
运动品类畅销:https://www.goluckyvip.com/tag/5642.html
【再放信号】美国Etsy即将放开中国卖家入驻,官方邮件你收到了吗?:https://www.kjdsnews.com/a/1836640.html
安庆市周边免费景点 安庆免费游玩的地方有哪些?:https://www.vstour.cn/a/365186.html
相关文章
我的浏览记录
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流