关于sender

    技术2022-05-11  54

    通过一个实例来品味sender

    现有一个快捷菜单(ContextMenu),是颜色的选项,ID分别为:mnuGray,mnuGreen,mnuBlue,mnuRed以及mnuPurple。以往我得做法是:每个菜单一个事件处理方法;先看看以下更高级的做法:

    定义一个事件处理函数:

    private void mnuItem_Click(object sender, System.EventArgs e)

    {

      // 获取消息的来源对象

       if(sender == mnuGray)   BackColor = System.Drawing.Color.Gray;

      else  if(sender == mnuGreen)   BackColor = System.Drawing.Color.Green;

       else if(sender == mnuBlue)   BackColor = System.Drawing.Color.Blue;

       else if(sender == mnuRed)   BackColor = System.Drawing.Color.Red;

       else if(sender == mnuPurple)   BackColor = System.Drawing.Color.Purple;

      // Checked设为false

       mnuGray.Checked = false;

       mnuGreen.Checked = false;

       mnuBlue.Checked = false;

       mnuRed.Checked = false;

       mnuPurple.Checked = false;

      // 设定当前的选项为Checked

      MenuItem objItem = (MenuItem)sender;

     objItem.Checked = true;

    }

    更多随想:

    1:自定义EventArgs,我们可以在EventArgs中保存有用的信息;

    2:再想想,呵呵。


    最新回复(0)