> 17.能否在工具箱中显示,自定义的组件类(继承自Control)
> 继承Lable,Button等组件,编写组件类,能否想自定义控件一样,出现在工
>具箱中,然后把它拖放到FORM中。我现在直接在代码中填加组件,太不方便
>了。 这是我的另一个问题,有探讨的我另给分。

解决方案 »

  1.   

    我有一段微软提供的重载dataGrid回车键的代码,希望对你有用,他重构的不是你说的消息,具体看代码
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    ////////////////////////////////////////////////////////////////
    /// These codes support by Microsoft
    /// ////////////////////////////////////////////////////////////


    const int WM_KEYDOWN = 0x100;
    const int WM_SYSKEYDOWN = 0x104; if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
    {
    //从dataGrid控件中获得当前单元格的值
    DataGridCell myDataGridCell = dataGrid1.CurrentCell;
    switch(keyData)
    {
    case Keys.Return:   
    break;
    }
    } return base.ProcessCmdKey(ref msg,keyData);
    }
      

  2.   

    你的第二个问题因该就是微软定义的组件吧! 因该可以的,但是怎么做我还没见到过,sorry
      

  3.   

    Lable是无法得到焦点的,它不是一个可输入的控件。
      

  4.   

    谢谢bear##
    对于label来说,它无法获得输入焦点,方法ProcessCmdKey不起作用。
    请问,你从何处获得的M$的这段代码?(DOTNET 的 MSDN遭透了,花里胡哨,什么也查不到。)
    “在c#中能否让一个Label处理KeyDown事件”
    这个问题是不是无解,我是不是需要换一种思路?
      

  5.   

    我告诉你,思路肯定是这样的,dataGrid发生的情况和你一样,有事件无法处理,最后微软给我这么段代码就搞定了