在closing 中把属改为可以为空?

解决方案 »

  1.   

    public class MyTextBox : System.Windows.Forms.TextBox
    {
    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) 

    if(msg.WParam.ToInt32() == (int) Keys.Tab) 

    SendKeys.Send("{Enter}"); 
    return true; 

            return base.ProcessCmdKey(ref msg, keyData); 


    上面一段代码的意思是将按tab键的效果等同于按了回车键
    然后在private void textBox3_KeyPress(System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar == (char)13)
    {
    }
    }
    在按回车键的时候判断是否为空,如果为空则提示这样就不
      

  2.   

    在点取消的时候已经SHOWMESSAGE了,请大家看清楚再回答,代码可以COPY下来试试
      

  3.   

    如果是鼠标的话,你在另一个textbox2的enter 事件中判断,如果前一个为空则
    textbox1.select()
    return;
    试试行不行
      

  4.   

    我也想到了楼上的说的方法,在ENTER事件中判断这个控件前一个TABINDEX的控件的VALID事件,把CANCEL按纽的TABINDEX的值设置为最小,这样就可以避免我说的退出的问题,
      

  5.   

    我这里又有问题了,怎么样来获取这个控件的窗口(因为我想用一个循环来找到TABINDEX比这个当前控件小一的控件,然后触发这个找到的控件的VALID事件
    还有,怎么样在这个控件里触发另一个控件的ENTER事件,
      

  6.   

    这个,判断是否为空这个需求基本上应该放在Validated里面去完成。
    不知道你是不是这么做的,因此在Validating的时候,有一个判断
    是否点击了所谓取消按钮的机会,你可以试试按钮所在窗体的
    ActiveControl属性,如果没有估计错误的话,在点击该按钮
    触发该文本框的Validating事件时,按钮所在窗体的ActiveControl
    应该已经是该按钮了。
      

  7.   

    现在大部分的问题我已经解决了,现在还有一个小问题,就是怎么样得到一个自定义控件所在窗体上的所有其他的控件,因为我这个自定义控件不是一定直接就放在窗体上,我有可能放在Panel上,所以用this.parent不行。用递归查找是一种方法,还有其他的方法么,
      

  8.   

    现在开始一个新的问题,也是关于自定义控件的:
    在.NET的控件中有一种是checklistbox,这里我想把他改一下,
    把它做成下拉的多选列表框(dropdownchecklistbox,原来的占的空间太大了),和COMBOBOX很像,但是可以多选(每一项前面多一个CHECKBOX,可以选择,被选中以后把内容用分搁符|分隔后显示在dropdownchecklistbox的TEXT中)大家有什么意见,要是有人做过给点提示,有代码更好,[email protected],MSN也是这个帐号!