探讨一个有关输入法选字框丢失的有趣话题

窗户纸 2012-08-08 10:21:13
先做个试验,建一个winform项目,form1里面有button,点击button的代码如下:

private void button1_Click(object sender, EventArgs e)
{
Thread p = new Thread(ThreadRun);
p.Start();
}

private void ThreadRun()
{
Form2 x = new Form2();
x.ShowDialog();

}

在form2中有一个textbox, 有趣的是,此时运行这个程序,在form2.textbox中输入中文, 微软2007,2010输入法无法显示选字框,而2003可以。
问题肯定是由于多线程造成的,我想到的方式比较土,但管用, 那就是委托方式,不知道高人有什么折

private void button1_Click(object sender, EventArgs e)
{
Thread p = new Thread(ThreadRun);
p.Start();
}
private event EventHandler ttt;
private void ThreadRun()
{
ttt(this, new EventArgs());

}
void Form1_ttt(object sender, EventArgs e)
{
if (this.InvokeRequired)
{
EventHandler p = new EventHandler(Form1_ttt);
this.Invoke(p);
}
else
{


Form2 x = new Form2();
x.ShowDialog();
}
}
...全文
247 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2012-08-17
  • 打赏
  • 举报
回复
winform没入门,记得所有UI调用都要用Invoke,很烦。
如果用代码生成的话,这个问题还是好解决的,给每个UI函数生成一个相同原型的代理。
hwy6384309 2012-08-17
  • 打赏
  • 举报
回复
路过我顺便也分点吧。
APM60- 2012-08-17
  • 打赏
  • 举报
回复
接分
  • 打赏
  • 举报
回复
我也来接分
木头小菜 2012-08-17
  • 打赏
  • 举报
回复
路过接分
showjim 2012-08-17
  • 打赏
  • 举报
回复
看看什么情况
stiff_neck 2012-08-17
  • 打赏
  • 举报
回复
准点接分。。
newtee 2012-08-17
  • 打赏
  • 举报
回复
路过,接分。 楼主好人
zhanglong19891129 2012-08-17
  • 打赏
  • 举报
回复
XP都退役了要.
hbh850121 2012-08-17
  • 打赏
  • 举报
回复
路过,接分。哈哈
xfxlylove 2012-08-17
  • 打赏
  • 举报
回复
我来接分算了。
窗户纸 2012-08-17
  • 打赏
  • 举报
回复
Hi, 散分啦,18:00结贴。
窗户纸 2012-08-08
  • 打赏
  • 举报
回复
又实验了一下谷歌2.7,也没有问题。看来是碰巧了,微软自己打了自己的屁股,不过也难怪,人家已经宣布不支持XP了,XP的BUG也就没必要考虑了。
窗户纸 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
第一种方法,XP+QQ五笔,正常
[/Quote]
微软2003也正常,不是所有输入法都有问题(老的紫光输入法还会死机呢)
窗户纸 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
我这里运行正常,没发现这个问题。Win7,微软拼音2007,Office2007。
[/Quote]
在win7应该没有问题,是xp的BUG, 他输入法的运行机制与win7不同,估计是消息循环造成的
SocketUpEx 2012-08-08
  • 打赏
  • 举报
回复
第一种方法,XP+QQ五笔,正常



lizhibin11 2012-08-08
  • 打赏
  • 举报
回复
我这里运行正常,没发现这个问题。Win7,微软拼音2007,Office2007。

110,533

社区成员

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

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

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