使用事件来通知外部对象
public class MyPanel:System.Windows.Forms.Panel
{
public delegate void OnKeyPressHandler(System.Windows.Forms.KeyPressEventArgs e);
public event OnKeyPressHandler OnKeyPressEvent=null;
public MyPanel()
{
//
// TODO: 在此处添加构造函数逻辑
//
} protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
base.OnKeyPress(e);
if(OnKeyPressEvent!=null)
OnKeyPressEvent(e);
}
}
然后在外部对象,如:
[STAThread]
static void Main() 
{
Application.Run(new Form1());
}
private void KeyPressListener(System.Windows.Forms.KeyPressEventArgs e)
{
    //这里来写自己的响应代码
}
private void Form1_Load(object sender, System.EventArgs e)
{
MyPanel p=new MyPanel();  //例如在这里定义panel
p.OnKeyPressEvent+=new MyPanel.OnKeyPressHandler(KeyPressListener);
}