DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Windows7(32bit)でかな入力できなくなるプログラム

環境/言語:[Windows7(32bit)、Microsoft IME、C#、.NET Framework4.0]
分類:[.NET]

メイン画面からマルチスレッドで、
サブ画面を呼び出しているだけのプログラムを書きました。

メイン画面はサブ画面を呼び出すためのボタンを一つ、
サブ画面(添付画像)にテキストボックスを配置しました。
メイン画面のソースは以下になります。

---------------------------------------
using System;
using System.Windows.Forms;
using System.Threading;

namespace TestApplication2010
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Thread threadTest = new Thread(new ThreadStart(DoTest));
threadTest.Start();
}

private void DoTest()
{
Form2 frm = new Form2();
frm.ShowDialog();
}
}
}
---------------------------------------

Windows7(32bit)、Microsoft IMEという環境だと、
サブ画面のテキストボックスで、かな入力ができなくなります。

Window7(64bit)やWindowsXPだと問題なし。Vistaは未テスト。
Windows7(32bit)でもIMEがgoogle日本語だと問題なし。

どんな原因が考えられるでしょうか?
添付ファイル: dump.jpg (6 KB)
■No30332に返信(えすえふさんの記事)
> どんな原因が考えられるでしょうか?

STA にしてみましょう。


private void button1_Click(object sender, EventArgs e)
{
    Thread threadTest = new Thread(new ThreadStart(DoTest));
    threadTest.SetApartmentState(ApartmentState.STA);
    threadTest.Start();
}

private void DoTest()
{
    Form2 frm = new Form2();
    Application.Run(frm);
}
■No30334に返信(魔界の仮面弁士さんの記事)
> ■No30332に返信(えすえふさんの記事)
>>どんな原因が考えられるでしょうか?
>
> STA にしてみましょう。

ご教授いただき、誠にありがとうございます。

スレッドが属するアパートを指定する必要があるのですね。
Windows7(32bit)、Microsoft IMEという環境で、
問題なく動作することが確認できました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板