none
dataGridViewのセルに日本語入力ができなくなるのはなぜでしょうか? RRS feed

  • 質問

  • Form1からForm2を開いて,さらにForm3を開いたとき,
    Form3のdataGridViewへの日本語入力ができなくなるのですが,日本語入力を確実に可能とする方法はないでしょうか?


    <Form1で>
       Form2 f2 = new Form2();
       f2.Show();
    <Form2で>
       Form3 f3 = new Form3();
       f3.frmHome = this;
       f3.Show();
    <Form3で>
       public Form2 frmHome;
       Form3にはこれしか書いてはいません。

    <日本語入力ができないのはなぜ?と考えてみたこと>
    1 Form3のdataGridViewのいろいろな設定のうちのどれかがまずいのかなと考えて,上に書いたようにまっさらにしてはみたのですが,状況は変わりませんでした。
    2 偶然でしたが,Form3を開く前にForm2をマウスであちこちと動かし,Form1をクリックした後にForm3での日本語入力が可能となりました。
    3 それで思ったのでしたが,Form1になにかしらの原因があるのではないかと思いました。
         ア Form1を常時,開いていること
         イ Form1でCodeProjectのタブコントロールを使っていること

    まったくお手上げの状態です。ご教授の程よろしくお願いいたします。

    • 編集済み zen73 2010年10月20日 8:00
    2010年10月20日 6:31

回答

  • 今、解決しました。

    <失敗例>
          F1  ⇒⇒⇒⇒⇒  F2  ⇒⇒⇒⇒⇒  F3  ⇔⇔⇔⇔⇔  F4
             F2.Show()      F3.Show()      F4.ShowDialog()
                           F2.Close()

    <成功例>
          F1  ⇒⇒⇒⇒⇒  F2  ⇒⇒⇒⇒⇒  F3  ⇔⇔⇔⇔⇔  F4
             F2.Show()      F3.Show()      F4.ShowDialog()
                   

    F2閉じたのがまずいようでした。これで「大丈夫」との確信はないのですが、とりあえずはこのままにしておこうと思います。

    なかむらさん、」TH01さん、ひらぽんさん、ありがとうございました。


    zen73
    • 回答としてマーク zen73 2010年10月20日 23:47
    2010年10月20日 23:47

すべての返信

  • 「dataGridViewのセルに日本語入力ができなくなる」とのことですが、どんなコードを書いていて、どんな現象になっているんでしょうか?

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年10月20日 7:03
  • なかむらさん,いつもありがとうございます。

    Form3のdataGridViewにはデータセットにバインドしたデータが表示されています。

    コードは,上に書いたpublic Form2 frmHome;しかかいていません。

    <日本語入力ができなくなる」とは・・・

    タスクバーというのでしょうか,Form3をひらいたとたん[A]と表示されていたところが消えてしまい,セルには英数字は入力できますが,例えば「山田太郎」と入力したいとき[や][ま][だ]と入力しても”や”しか表示されず,変換もできません。

     


    zen73
    2010年10月20日 7:39
  • テストしてみましたが、問題は再現しませんでした。
    (グリッドは、デザイナで2列追加しただけのもで試しました。)

    以前の以下のスレッドのコードの弊害かと心配しましたが、コードはないとのことですので違いますね。

    DataGridViewの新規行は表示するがそこへの入力は許可しないようにする方法はありますか。
    http://social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/e88b1f66-d21e-4e74-9fdf-45e4e4ef5623

    その DataGridView の ImeMode プロパティが Disable 等になっていたりしないでしょうか?

    別件のフリーズするプロジェクトでも、そのタブコントロールを使用されていましたね。
    そのタブコントロールを使用しないテストプロジェクトを新規に作成して動作を確認されてはいかがでしょうか?

    2010年10月20日 8:24
  • 報告です。

    質問をかいてから,間をおいて何度か試してみたのですが,不思議なことに試したすべてで正常に「日本語入力」ができることを確認しました。

    ほんとうに不思議です。実は質問の前に丸二日間この不具合を解消しようといろいろ(まさに試行錯誤で詳細をかくことはできないのですが)やってみてたのにどうしたことでしょう。

    こんなことって,あるのでしょうか。


    zen73
    2010年10月20日 8:30
  • IME の問題かもしれません。DataGrid ではないのですが、参考までに書かせて頂きます。

    以前 IME が 「Office IME 2007」 だった頃、VS2008 のテキストエディタで、まれに日本語入力がおかしくなる場合がありました。IME がいきなり無効になったり、もしくは「かな入力」はできるが「漢字変換」は全くできないという現象でした。
    VisualStudio を再起動すると治りましたが、感覚的には 1週間~1ヶ月の間に約1~2回発生するようで、IME の問題だろうと放置してました。その後 Office 2010 をインストールした際、IME も Office IME 2010 に変わってしまったためか、それ以降、上記の現象は発生してないようです。

    いずれにせよ IME がらみの問題なら、以下のように、問題の起きる環境をできる限り詳しく提示した方がいいと思います。

    XP/SP3・VisualStudio 2008 SP1・.NET Framework 3.5 SP1・Office IME 2010


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2010年10月20日 9:05
    モデレータ
  • >IME の問題かもしれません。

    XP/ProSP3・VisualStudio 2008 ProSP1・.NET Framework 3.5 SP1・Office IME 2007


    さきほどは問題なく動作しているとの報告をさせていましたが,これを書く前に試してみたところ,元の状態のもどってしまいました。 それで,私もIMEを疑います。

    VisualStudioを起動した段階で,言語バー全体が表示されたり,一部しか表示されなかったりします。

    半年前に2007を購入したばかりですので,2010に手を出すことはできません。

    調べてみましたら,Wordを使用していても私と同じような減少になることが結構あるみたいです。でも対処法は書かれていません。

     

     

     


    zen73
    2010年10月20日 11:15
  • 今、解決しました。

    <失敗例>
          F1  ⇒⇒⇒⇒⇒  F2  ⇒⇒⇒⇒⇒  F3  ⇔⇔⇔⇔⇔  F4
             F2.Show()      F3.Show()      F4.ShowDialog()
                           F2.Close()

    <成功例>
          F1  ⇒⇒⇒⇒⇒  F2  ⇒⇒⇒⇒⇒  F3  ⇔⇔⇔⇔⇔  F4
             F2.Show()      F3.Show()      F4.ShowDialog()
                   

    F2閉じたのがまずいようでした。これで「大丈夫」との確信はないのですが、とりあえずはこのままにしておこうと思います。

    なかむらさん、」TH01さん、ひらぽんさん、ありがとうございました。


    zen73
    • 回答としてマーク zen73 2010年10月20日 23:47
    2010年10月20日 23:47