intAnswer[intID - 1] = Convert.ToInt32(((RadioButton)sender).Tag);
strAnswer[intID - 1] = ((RadioButton)sender).Text.Trim();这两句运行会提示:
无法将类型为“System.Windows.Forms.Panel”的对象强制转换为类型“System.Windows.Forms.RadioButton”。
但并不是每次都提示,这是什么原因啊?C#

解决方案 »

  1.   

    别用sender直接使用控件名称
    如果你要用sender你要确保你的这个事件是randiobutton传过来的
      

  2.   

    intAnswer[intID - 1] = Convert.ToInt32(((RadioButton)sender).Tag);
    strAnswer[intID - 1] = ((RadioButton)sender).Text.Trim();你上边语句中的sender是谁?
      

  3.   

    无法将类型为“System.Windows.Forms.Panel”的对象强制转换为类型“System.Windows.Forms.RadioButton”
    ((RadioButton)sender).Text.Trim();你这个sender应该是Panel控件,无法强制转换这不都明说了,直接用RadioButton就行了
      

  4.   

    事件触发没点到RadioButton 点到他的容器Panel了
      

  5.   

    我刚试过了,是这个原因,只要不小心点到panel就会报错,但是我是在radioButton1_Click的事件里写的啊,为什么点击panel会触发啊
      

  6.   

    你的Panel是不是不小心订阅了RadioButton的Click事件
      

  7.   

    可能是在我选择radiobutton事件时,不小心点击了panel,所以才出现这个问题,我重新选择后,不再提示错误