代理 二
心情好壞!!!!!!!!!!!!!!!!!!!!!
我的准女友跟我說拜拜!!!!!!!!!!!!!!!!!!!!!
再也不想搞計算機了兄弟們撤退吧!!!!!!!!!!!!!!!!!!!!
c#我沒心情寫了。以後再說吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1〉事件
上一章講解了有關代理的基本應用,本章將繼續講解深入代理的使用。這裡我們講解使用代理來處理事件。關於事件在另一章進行詳細講解。處理事件在c#中對比c++和vb來說更聰明,你可以寫代理然後寫事件處理者,事件處理者是一種定義在控件和窗體類中的重載的公共事件。我們在以下的例子中將看到代理在事件中的應用。
1。寫代理
我想處理鼠標單擊事件和在鼠標單擊左鍵或右鍵處理一些代碼。寫下面的代碼在你的初始控件函數中。
this.MouseDown += new System.WinForms.MouseEventHandler(this.Form_MouseDown);
2. 寫事件
現在你可以寫事件處理,你的事件的輸出參數將返回窗體的鼠標事件參數的詳細內容。以下時鼠標事件參數成員
MouseEventArgs members
Button 指示哪一個鍵被壓,分為左、右、中、無 。
Clicks 指示鼠標壓下次數及釋放狀態。
Delta 指示鼠標轉動數量計數
X 鼠標點擊x坐標點
Y 鼠標點擊y坐標點
Event Handler
private void Form_MouseDown(object sender, System.WinForms.MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
MessageBox.Show(this,"Left Button Click");
break;
case MouseButtons.Right:
MessageBox.Show(this,"Right Button Click" );
break;
case MouseButtons.Middle:
break;
default:
break;
}
}
在你的WinForm中測試你的程序,你會看到通過代理事件被關聯了。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
class I
{
public I(){}
~I() {}
public void IDoLoveYou()
{System.Console.WriteLine("I do love You");}
public void why(){System.Console.WriteLine("why?");}
}
class HER
{
public HER(){}
~HER() {}
public void IDo()
{System.Console.WriteLine("...............");}
public void slient(){System.Console.WriteLine(".........");}
}
class TELEPHONE
{public delegate void heartchat();
public TELEPHONE(){}
~TELEPHONE(){}
public void hello(){System.Console.WriteLine("yesterday night,i telephone to my girlfriend"); }
}
class chat{
static void Main() {
I i=new I();
HER her=new HER();
TELEPHONE telephone =new TELEPHONE();
telephone.hello();
TELEPHONE.heartchat tell=new TELEPHONE.heartchat(i.IDoLoveYou);
tell();
TELEPHONE.heartchat answer=new TELEPHONE.heartchat(her.IDo);
answer();
TELEPHONE.heartchat ask=new TELEPHONE.heartchat(i.why);
ask();
&n
[1] [2] 下一頁
bsp; TELEPHONE.heartchat noanswer=new TELEPHONE.heartchat(her.slient);
noanswer();
}
}
上一頁 [1] [2]