我问个C# winform用户控件的,是否允许为空 我做了个用户控件继承的是TextBox,我希望增加一个属性是不允许为空,然后我重写了OnValidated,在里面判断是否允许为空,为空则返回。然后我在使用的时候发现第一次点提交按钮时可以判断,但是第二次就不行了,请问我该用什么事件?就是类似asp.net里面那种验证控件那样的效果。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在out事件里判断TextBox的值应该可以的吧 // 摘要: // 释放由 System.Windows.Forms.TextBox 占用的非托管资源,还可以另外再释放托管资源。 // // 参数: // disposing: // 为 true 则释放托管资源和非托管资源;为 false 则仅释放非托管资源。 protected override void Dispose(bool disposing); // // 摘要: // 确定指定的键是输入键还是需要预处理的特殊键。 // // 参数: // keyData: // 键的一个值。 // // 返回结果: // 如果指定的键是输入键,则为 true;否则为 false。 protected override bool IsInputKey(Keys keyData); // // 摘要: // 引发 System.Windows.Forms.Control.BackColorChanged 事件。 // // 参数: // e: // 包含事件数据的 System.EventArgs。 protected override void OnBackColorChanged(EventArgs e); // // 摘要: // 引发 System.Windows.Forms.Control.FontChanged 事件。 // // 参数: // e: // 包含事件数据的 System.EventArgs。 protected override void OnFontChanged(EventArgs e); // // 摘要: // 引发 System.Windows.Forms.Control.GotFocus 事件。 // // 参数: // e: // 包含事件数据的 System.EventArgs。 protected override void OnGotFocus(EventArgs e); // // 摘要: // 引发 System.Windows.Forms.Control.HandleCreated 事件。 // // 参数: // e: // 事件数据。 protected override void OnHandleCreated(EventArgs e); // // 摘要: // 引发 System.Windows.Forms.Control.OnHandleDestroyed(System.EventArgs) 事件。 // // 参数: // e: // 包含事件数据的 System.EventArgs。 protected override void OnHandleDestroyed(EventArgs e); // // 摘要: // 引发 System.Windows.Forms.TextBox.TextAlignChanged 事件。 // // 参数: // e: // 一个 System.EventArgs,其中包含事件数据。 protected virtual void OnTextAlignChanged(EventArgs e); // // 摘要: // 将选定文本设置为指定文本,但不清除撤消缓冲区。 // // 参数: // text: // 要替换的文本。 public void Paste(string text); // // 摘要: // 处理 Windows 消息。 // // 参数: // m: // 一个 Windows 消息对象。 protected override void WndProc(ref Message m); 第一如果单独说控件不可为空的话,你可以在失去焦点的时候判断下。可是你说类似asp.net验证控件的话,就需要窗口的介入了,如果用户从来没有点击过该控件,那么控件 自身没有办法。我以前写过一个基类窗口,它允许通过Form设计器直接选择设计器上的控件验证方式,例如是否为空,是否为Email,是否为数字等等,这需要窗口的帮助你才能完成功能。 "通过Form设计器直接选择设计器上的控件验证方式"是怎么做? protected override void Dispose(bool disposing);是否释放资源? 同事写的代码太过深奥,求高手解释 求一个C#新年倒计时的程序 PictureBox显示某些有问题的gif图片时必定会出现“GDI+中发生一般性错误。” invoke 界面冻结问题 sql中处理事务出现“SqlConnection 不支持并行事务”的错误。 如何在Form1窗体中的方法调用窗体Form2? DropDownList从数据库绑定数据前如何先添加一手写项? 我用C#在win2000下写了一个项目,安装到XP下,界面上的图标都看不见了,是为何,怎么处理啊? 寻找C#程序员 救命,谁能解决上百万数量级的报表查询 请问这句连接Access数据库为什么错 请问timer组件是怎么用的
// 释放由 System.Windows.Forms.TextBox 占用的非托管资源,还可以另外再释放托管资源。
//
// 参数:
// disposing:
// 为 true 则释放托管资源和非托管资源;为 false 则仅释放非托管资源。
protected override void Dispose(bool disposing);
//
// 摘要:
// 确定指定的键是输入键还是需要预处理的特殊键。
//
// 参数:
// keyData:
// 键的一个值。
//
// 返回结果:
// 如果指定的键是输入键,则为 true;否则为 false。
protected override bool IsInputKey(Keys keyData);
//
// 摘要:
// 引发 System.Windows.Forms.Control.BackColorChanged 事件。
//
// 参数:
// e:
// 包含事件数据的 System.EventArgs。
protected override void OnBackColorChanged(EventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.Control.FontChanged 事件。
//
// 参数:
// e:
// 包含事件数据的 System.EventArgs。
protected override void OnFontChanged(EventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.Control.GotFocus 事件。
//
// 参数:
// e:
// 包含事件数据的 System.EventArgs。
protected override void OnGotFocus(EventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.Control.HandleCreated 事件。
//
// 参数:
// e:
// 事件数据。
protected override void OnHandleCreated(EventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.Control.OnHandleDestroyed(System.EventArgs) 事件。
//
// 参数:
// e:
// 包含事件数据的 System.EventArgs。
protected override void OnHandleDestroyed(EventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.TextBox.TextAlignChanged 事件。
//
// 参数:
// e:
// 一个 System.EventArgs,其中包含事件数据。
protected virtual void OnTextAlignChanged(EventArgs e);
//
// 摘要:
// 将选定文本设置为指定文本,但不清除撤消缓冲区。
//
// 参数:
// text:
// 要替换的文本。
public void Paste(string text);
//
// 摘要:
// 处理 Windows 消息。
//
// 参数:
// m:
// 一个 Windows 消息对象。
protected override void WndProc(ref Message m);
第一如果单独说控件不可为空的话,你可以在失去焦点的时候判断下。
可是你说类似asp.net验证控件的话,就需要窗口的介入了,如果用户从来没有点击过该控件,那么控件
自身没有办法。
我以前写过一个基类窗口,它允许通过Form设计器直接选择设计器上的控件验证方式,例如是否为空,是否为Email,是否为数字等等,这需要窗口的帮助你才能完成功能。