private void SraAtkOtherForm_SelectedItemChanged(object sender, EventArgs e)
        {
            if (sender.GetType() == typeof(ComboBox))
            {
                foreach (TabPage ctl in this.ATKtabControl1.Controls)
                {
                    if (ctl.Text == this.ccbSsasty.Display)
                    {
                        this.ATKtabControl1.SelectedTab = ctl;
                    }
                }
         }
sender.GetType()会导致副作用,请问各位大侠,是什么副作用,为何不能计算?

解决方案 »

  1.   

    if(sender is ComboBox)
    Type是引用类型吧,默认继承自Object的比较是比较内存地址,除非它重写了(我不常用,没研究过),
    或者你用 sender.GetType().ToString() == typeof(Combox).ToString()
      

  2.   

    sender.GetType().ToString == "ComboBox"
      

  3.   

    其实类型判断的话,这样写就可以了:
    if(sender is ComboBox)
      

  4.   

    你无非就是想判断事件源是不是ComboBox吗,
    if (sender is ComboBox )
    {}
    这样不也行吗
      

  5.   

    sender .GetType ().Name=="combobox";
      

  6.   

    sender为空....就错了.而且类不许是ComboBox 如果是继承的ComboBox就无效了ComboBox _ComboBox =sender as ComboBox;if(_ComboBox!=null)
    {
        
    }或则
    if(sender is ComboBox)
    {
    }
      

  7.   

    如果是标准的控件事件,都不用去管它,因为它不会送个null给你,
    当然判断一下最好.