现在窗体上写了keydown事件,上下键的时候到下一控件
我想要屏蔽上下键时日期控件的之改变
就是直接到下一个控件,而日期控件的值不变我得方法是在窗体keydown事件中判断当前控件是日期控件时
send{up}或send{down}把值重新变回来,
现状是如果有一个日期控件的话没有问题
可是如果是连续2个日期控件的时候,2个控件的值都变化有没有办法直接把日期控件的上下键改变值给屏蔽掉?或者其他方法?我也曾尝试过日期控件chang获取值
leave的时候再给放回去
可是同样不好用,怀疑几个控件之间的事件触发顺序问题很急啊,帮帮忙!!!

解决方案 »

  1.   

    public class SubWindow : NativeWindow
    {
        protected override void WndProc(ref Message m)
        {
            const int WM_KEYDOWN = 0x0100;
            switch (m.Msg)
            {
                case WM_KEYDOWN: 
                    switch((int)m.WParam)
                    {
                        case (int)Keys.Up:
                        case (int)Keys.Down:
                            return;
                    }
                    break;
            }
            base.WndProc(ref m);
        }
    }private void Form1_Load(object sender, EventArgs e)
    {
        SubWindow vSubWindow = new SubWindow();
        vSubWindow.AssignHandle(monthCalendar1.Handle);
    }
      

  2.   

     for this" WndProc(ref Message m) ",i never used before,but it is very good.