六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用自定義事件完成不同窗體間的通訊 -- C#篇

[摘要]C# 中的“事件”是當對象滿足一定條件,發生某些事情時,類向該類的客戶提供通知的一種方法。使用事件,擁有該事件的對象不必知道需要通知誰,一旦滿足了某個條件,將自動調用該事件,正確通知每個需要通知的對象。通過使用事件,提高了程序的模塊化程度。 要在程序中使用自定義事件,需按以下步驟進行: 1、聲明事...
 C# 中的“事件”是當對象滿足一定條件,發生某些事情時,類向該類的客戶提供通知的一種方法。使用事件,擁有該事件的對象不必知道需要通知誰,一旦滿足了某個條件,將自動調用該事件,正確通知每個需要通知的對象。通過使用事件,提高了程序的模塊化程度。
要在程序中使用自定義事件,需按以下步驟進行:
 
1、聲明事件
要在類內聲明事件,首先必須聲明該事件的委托類型:
public delegate void SelectionChangedEventHandler(object sender,
    SelectionChangedEventArgs e);
 
說明:由于本示例程序需在事件中傳遞數據,因此定義了EventArgs的派生類SelectionChangedEventArgs。
public class SelectionChangedEventArgs : EventArgs
{
    private string m_selection;
 
     //本屬性用于傳遞事件數據
    public string Selection
    {
        get { return m_selection; }
    }
 
    public SelectionChangedEventArgs(string selection)
    {
        m_selection = selection;
    }
}
 
委托類型定義傳遞給處理該事件的方法的一組參數。多個事件可共享相同的委托類型,因此僅當尚未聲明任何合適的委托類型時才需要執行該步驟。
 
接下來,聲明事件本身:
public event SelectionChangedEventHandler SelectionChanged;
 
 
2、調用事件
如果沒有任何客戶將委托與該事件掛鉤,該字段將為空;否則該字段引用應在調用該事件時調用的委托。因此,調用事件時通常先檢查是否為空,然后再調用事件。
public class Form2 : System.Windows.Forms.Form
{
    ... ...
 
    public event SelectionChangedEventHandler SelectionChanged;
 
    ... ...
 
    private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        if (SelectionChanged != null)
        {
            SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
            SelectionChanged(this, E);
        }
    }
}
 
3、與事件掛鉤
為了開始接收事件調用,客戶代碼先創建事件類型的委托,該委托引用應從事件調用的方法。然后它使用 += 將該委托寫到事件可能連接到的其他任何委托上。
public class Form1 : System.Windows.Forms.Form
{
    ... ...
 
    private Form2 m_frm2;
 
    ... ...
 
    public Form1()
    {
        ... ...
 
        m_frm2 = new Form2();
 
          //與事件掛鉤
        m_frm2.SelectionChanged += new SelectionChangedEventHandler(frm2_SelectionChanged);
    }
 
    ... ...
 
    private void button1_Click(object sender, System.EventArgs e)
    {
        m_frm2.ShowDialog();
    }
 
    private void frm2_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
           //獲取事件傳遞過來的數據
        textBox1.Text = e.Selection;
    }
}
 
本示例效果如下圖所示:
 
利用自定義事件實現不同窗體間的通訊 -- C#篇




主站蜘蛛池模板: 日韩免费精品一级毛片 | 午夜h视频| 婷婷六月丁 | 日韩视频免费在线观看 | 午夜福免费福利在线观看 | 人与禽交免费网站视频 | 一二三四影院免费观看 | 亚洲国产99在线精品一区二区 | 欧美午夜色大片在线观看免费 | 最近韩国日本高清免费观看 | 亚洲欧洲eeea在线观看 | 天天色综合天天 | 色综合久久综合欧美综合网 | 台湾中文娱乐综合久久久 | 日韩特级黄色片 | 天堂新版www中文 | 欧美中日韩在线 | 在线观看日本 | 日本尤物精品视频在线看 | 日本不卡一区二区三区 | 日本高清v| 日本午夜www高清视频 | 色综合日韩 | 亚洲国产天堂久久综合图区 | 青草伊人网 | 中文字幕在线视频第一页 | 日本免费网 | 婷婷综合缴情亚洲狠狠图片 | 天天看天天色 | 天天射天天操天天色 | 伊人久久免费视频 | 色九九视频 | 色综合网天天综合色中文男男 | 午夜激情在线观看 | 亚洲第一看片 | 亚洲专区在线播放 | 欧美一级淫片a免费播放口aaa | 欧美一级欧美一级高清 | 欧美做a一级视频免费观看 欧美坐爱视频 | 欧美一区二区三区在线可观看 | 日本乱码视频a |