我先写个panel的继承类
eg:
class mypanel:Panel
{
    //添加键盘响应事件
        private void ImputClass_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode.ToString() == "Delete")
            {
                this.Dispose();
            }        }
  
}结果没有响应,这种事件该怎么添加???

解决方案 »

  1.   

    看样子楼主是要删除控件本身,可以参考一下如下的代码: class mypanel : Panel
    {
    //添加键盘响应事件 
    private void ImputClass_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if (e.KeyCode== Keys.Delete)
    {
    if (this.Parent != null)
    {
    this.Parent.Controls.Remove(this);
    this.Dispose();
    }
    }
    }

      

  2.   

    现在的问题是panel 本身不带有KeyEventArgs事件
    不像click可以这样写
     this.Click += new EventHandler(ImputClass_Click);我怎么让panel响应KeyEventArgs事件呢?
      

  3.   

    panel因为是容器控件,同时也是不可以选择的控件,所以不能像Button,TextBox等一样可以处理按键事件。其实我不太明白,为什么楼主会处理Panel控件按键事件。但是如果你有一个途径能使Panel获得焦点,它也是可以处理按键的。比如mypanel.Focus()设置后就可以处理了。
      

  4.   

    应该是得继承含有EventHandler的base类
      

  5.   

    不知道说不说的明白
    我想做个UserControl
    让他能够当容器使用,能放别的Control
    要实现
    1.click-获得焦点,里面的control都lostFocus
    2.keydown-删除
    并不指定是panel
    只是要实现第一个功能的时候用panel方便一点