winform 是否可以模拟真实调用事件?

ycxjex2006 2012-05-09 03:20:13
事件方法是可以调用的, 但是发现实际上状态是没有改变的.
例:
控件现在是焦点状态, 我调用了失去焦点的那个方法.
但是发现虽然执行了失去焦点的那个方法, 但是实际上控件还是处于焦点状态, 这个如何解决呢?
...全文
149 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycxjex2006 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

都用了什么控件啊,不是标准控件?
[/Quote]

是的 我现在在弄metro 有些不太一样
wangsong145 2012-05-09
  • 打赏
  • 举报
回复
可以发送tab命令让其他控件获得焦点
jacie0617 2012-05-09
  • 打赏
  • 举报
回复
貌似只有获取焦点的方法Focus()吧。另有失去焦点的事件。
test2050 2012-05-09
  • 打赏
  • 举报
回复
我的理解是你想让它失去焦点,那程序自己得让下一控件取得焦点,你如果下一控件像你说的没有获得焦点的方法。那就像你现在看到的效果。它状态没有改变。不知道对不对,我猜的。麻烦楼主验证一下。先放一个textbox让它取得焦点。
qingfeng5251 2012-05-09
  • 打赏
  • 举报
回复
不知道,是不是楼主要的
 private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.button1.LostFocus += new RoutedEventHandler(button1_LostFocus);
}
void button1_LostFocus(object sender, RoutedEventArgs e)
{
//this.button1.Focusable = false;// 第一种

//this.button2.Focus(); // 第二种
}

button1_LostFocus(this.button1, null); 调用
test2050 2012-05-09
  • 打赏
  • 举报
回复
都用了什么控件啊,不是标准控件?
ycxjex2006 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

怎么写的
[/Quote]

直接调用的 方法是执行到的 但是控件的状态是没有改变的
text.textBox_LostFocus(text.TextBox, null);
ycxjex2006 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

回车时还要写句让其它控件取得焦点试试
[/Quote]

另一个控件没有获取焦点这个方法
test2050 2012-05-09
  • 打赏
  • 举报
回复
回车时还要写句让其它控件取得焦点试试
ycxjex2006 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

莫非楼主理解错了 你调用的是事件处理程序吧? 事件处理程序不是你主动调用的 当时间发生时 它自己就会被调用


是的,但是我现在就要模拟这个操作. 比如按下回车, 该控件先去焦点
[/Quote]
失去
ycxjex2006 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

莫非楼主理解错了 你调用的是事件处理程序吧? 事件处理程序不是你主动调用的 当时间发生时 它自己就会被调用
[/Quote]

是的,但是我现在就要模拟这个操作. 比如按下回车, 该控件先去焦点
请叫我卷福 2012-05-09
  • 打赏
  • 举报
回复
莫非楼主理解错了 你调用的是事件处理程序吧? 事件处理程序不是你主动调用的 当时间发生时 它自己就会被调用

请叫我卷福 2012-05-09
  • 打赏
  • 举报
回复
说明你写错啦
bdmh 2012-05-09
  • 打赏
  • 举报
回复
怎么写的
cheng2005 2012-05-09
  • 打赏
  • 举报
回复
你自己的代码有问题

111,126

社区成员

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

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

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