欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#事件中關于sender的用法解讀

 更新時間:2022年09月09日 11:24:14   作者:Rhine404  
這篇文章主要介紹了C#事件中關于sender的用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

C#事件sender的小用法

開WPF新坑了,看了WPF的炫酷界面,再看看winForm實在是有些慘不忍睹(逃)。后面會開始寫一些短的學習筆記。

一、什么是sender

sender最常見到的情況就是下圖參數(shù)列表中的這個了…可能平時沒多少注意。

private void Button_Click(object sender, RoutedEventArgs e)
{
    //……blahblahblah
}

sender我們很容易猜到肯定是例子中觸發(fā)單擊事件的那個button控件,它類型是object。C#里的繼承關系是所有類的基類,萬物基于object(滑稽),所以控件同樣也是繼承與object的,所以將sender進行類型轉換就能直接得到觸發(fā)事件的控件對象。

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    btn.Content = "我被點擊了";
}

將sender 進行類型轉換后,就能夠直接對button1的屬性進行更改,所以 sender是當前 觸發(fā)事件的控件

二、小用法

知道了sender是什么后,我們就可以開始加以小小的應用了。

我首先想到的就是,當有多個控件需要觸發(fā)相同的事件時,使用sender來獲取當前觸發(fā)事件的控件,可以在同一個方法中進行事件的響應,能夠使代碼的重用性提高,也能更簡潔

下面用一個小小的例子來解釋(當然這個只是我暫時先想到的應用)。

界面很簡單,按照以往的設計習慣,需要將兩個button的單擊事件分開來寫,彈出是誰被點擊的提示。而現(xiàn)在可以利用sender實現(xiàn)只用一個button_Click事件,就可以顯示是誰被點擊了。

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 WPFLittleTips
{
    /// 
    /// MainWindow.xaml 的交互邏輯
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void btnObj1_Click(object sender, RoutedEventArgs e)
        {
            Button btn = (Button)sender;
            if(btn == btnObj1)
            {
                MessageBox.Show("Btn1 被點擊了");
            }
            else
            {
                MessageBox.Show("Btn2 被點擊了");
            }
        }
    }
}

單擊后的效果應該都能想到了,就不貼圖了。

應該sender 的應用還很多,突然發(fā)現(xiàn)以前都沒有注意到的小東西,利用起來還是很有用的。

C#事件中sender和e參數(shù)的理解

  • sender是事件源,表示觸發(fā)事件的那個組件,比如說你按下按鈕,那么sender就是按鈕
  • EventArgs是事件參數(shù),比如說你用鼠標點擊窗體,那么EventArgs是會包含點擊的位置等等,它用來輔助你處理事件。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論