先做个试验,建一个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();
}
}
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();
}
}
解决方案 »
- 关于抛出异常未处理SqlExceptin的问题
- my97datepicker问题
- 关于密码的加解密!
- 如何让clear按钮清空winform的所有控件(如textBox,comboBox,dataGridView等)
- -------------------求一个C#正则表达式----------------------
- 求一个查询功能解决方法
- textBox.text的内容要以word文件方式输出,该怎么做
- 关于ABCpdf NET组件的Unable to write PDF to disk错误!
- 关于正则表达式匹配中文的问题。
- 求救:利用MySQLDriverCS 向mysql中插入特殊字符时出错
- c#怎么调用java生成的RSA 公钥进行加密?
- 大家好,我有个关于泛型的问题,大家帮下忙,谢谢
如果用代码生成的话,这个问题还是好解决的,给每个UI函数生成一个相同原型的代理。