繁体   English   中英

即使在 UC 的设计和 UC 的实例上将 AutoValidate 设置为禁用,也会调用 UserControl 验证函数

UserControl Validating function is called even when AutoValidate is set to Disable on both the UC's design and the UC's instance

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

  1. 创建了一个带有许多数据绑定子控件的 UserControl,其中没有一个具有 Validating 事件。
  2. 给 UC 的根一个验证事件。
  3. 将 UC 的根设置为AutoValidate:Disabled
  4. 将 UC 放在主窗体上。
  5. 将主窗体上 UC 实例的属性设置为AutoValidate:Disabled
  6. 主窗体有编辑、保存、取消按钮。 只有 Save 调用 uc.ValidateChildren()。

预期结果:仅当我在主窗体上单击“保存”时才会调用验证函数。

实际结果:当我在主窗体上单击取消时,也会调用验证函数。 我非常希望它被调用,因为这是取消按钮的全部意义。

2 个回复

主要问题是:您想要自动验证吗?

◾ 如果您不想在表单级别进行自动验证:

  • Form 的 AutoValidate属性设置为Disable ,当您在控件之间移动时不会引发Validating事件。
  • 当您想要触发验证事件时调用ValidateChildren

◾ 如果您想在表单级别自动验证,但不想在单击 X 按钮或取消按钮时进行验证:

  • 将表单的AutoValidate属性设置为EnableAllowFocusChange

  • 对于您的取消按钮,请确保您已将CausesValidation属性设置为false

  • 为了防止在关闭表单时进行验证,请将以下代码添加到您的表单中:

     private const int WM_CLOSE = 0x0010; protected override void WndProc(ref Message m) { if (m.Msg == WM_CLOSE) { var autoValidate = this.AutoValidate; this.AutoValidate = AutoValidate.Disable; base.WndProc(ref m); this.AutoValidate = autoValidate; } else base.WndProc(ref m); }

    您可能想在这里查看我的帖子以了解更多详细信息: How to prevent validating from being fire when I click X (Close button) on the form

在我的情况下,修复是:

  1. 主窗体的根设置为AutoValidate:Disabled 仅在 UC 实例上设置此项是不够的。
2 perl rand lc / uc

我试图在我的42个字符密码中获得随机小写/大写字母。 不知怎的,我反而得到: ucclcjuczlclucmlc0lcdlc5lc0ucdlccucmucquc5ucslc4lckucxuctlcvlcquclucpuc0ucvlczucducauczlcauc7lciucmlcpl ...

3 linux API的set_memory_uc()函数

我从用户空间知道一些虚拟地址,我想对空间进行缓存。 我尝试在内核模块中使用API​​ set_memory_uc。 我查看了内核代码,发现此API接受虚拟地址作为第一个参数,但是在此API中,它使用__pa()将其转换为PA。 但是,__pa()仅对内核空间虚拟地址有效吗? 所以我想 ...

4 如果我从其他UC调用代码,WPF绑定问题

嗨我有一个问题,以了解WPF中的绑定。 我有一个用户控件并包含ListView,并从数据库中读取数据,但它至少需要60秒,然后用数据填充listview。 有一个状态栏显示加载过程。 如果数据已加载到内存中并且用户打开UC,则View模型会将数据加载到ListView。 一切正常 ...

7 OpenCV CV_8UC3到CV_8UC1

我的图像是CV_8UC3类型(它是灰度图像),我需要它作为CV_8UC1 。 我怎样才能进行转型? 我已经试过了 但它仍然给我一个3通道图像。 RectLeft是此图像的修正版本: 使用这部分代码完成整改: 应使用经过校正的图像(及其右侧相机的伙伴) 但 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM