消息被WeifenLuo.WinFormsUI.Docking给截了。。。

csz_1987 2011-07-24 12:45:44
自定义了一个TextBox,例如取名叫UcTextBox。
在UcTextBox内实现Validating事件。
当执行到 “e.Cancel = true;”的时候,消息就会被WeifenLuo.WinFormsUI.Docking的钩子给截了。
然后WeifenLuo.WinFormsUI.Docking会判断这条Message是不是它的,
不是他的他再把这条消息Return回UcTextBox内,并为UcTextBox设定焦点。
弄得我焦点无法从UcTextBox内移开,就连点击关闭按钮也不行。
因为点击任何地方,都会触发UcTextBox的Validating事件,进而执行“e.Cancel = true;”,
接着消息又被WeifenLuo.WinFormsUI.Docking给截了,继续重复上面的过程。

WeifenLuo.WinFormsUI.Dockink 源码挺大的,对Hook又不是很熟。怎么处理啊?

大家有碰到过类似的情况么?


private void UcTextBox_Validating(object sender, CancelEventArgs e)
{
this.Text = this.Text.Trim();
m_ErrorProvider.Clear();
if (this.Text.Length < m_MinLength || this.Text.Length > this.MaxLength)
{
m_ErrorProvider.SetError(this, string.Format("长度应在{0}位至{1}位之间!", m_MinLength, MaxLength));
this.Focus();
e.Cancel = true;
}
else
{
m_ErrorProvider.Clear();
e.Cancel = false;
}
}
...全文
121 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csz_1987 2011-07-24
  • 打赏
  • 举报
回复
自己解决了,自己的代码有问题。。。。
  • 打赏
  • 举报
回复
你发错了论坛,去问它的技术支持人员。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧