• ベストアンサー

DataGridのIME制御

VB6を使っていますが、DataGridコントロールのIME制御の方法がわかりません。 また、コマンドボタンやオプションボタンでもIMEが開いてしまい困っています。 とりあえず、DataGridでのIMEをソース上で閉じる方法を教えてください。

  • kmor
  • お礼率90% (255/283)

質問者が選んだベストアンサー

  • ベストアンサー
  • urourojp
  • ベストアンサー率33% (1/3)
回答No.2

>ただ、気になったのは、「hWnd = Text1.hWnd >の部分のコントロール名はDataGridでなくていい >んですか? あああ、その通りです。 うちのをコピペして修正するのをさすれていました。(笑)

kmor
質問者

お礼

すっきりしました。 ありがとうございました。

その他の回答 (1)

  • urourojp
  • ベストアンサー率33% (1/3)
回答No.1

'次のようなことがしたいのでしょうか? 'とりあえず、貼り付けてみてください。 Public Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long Public Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long Public Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal himc As Long) As Long Private Sub DataGrid_GotFocus()   Dim himc As Long   Dim hWnd As Long   hWnd = Text1.hWnd   'IMEをOn/Off   himc = ImmGetContext(hWnd)   Call ImmSetOpenStatus(himc, 1) 'ON   'Call ImmSetOpenStatus(himc, 0) 'OFF   Call ImmReleaseContext(hWnd, himc) End Sub

kmor
質問者

お礼

御礼遅くなり申し訳ありません。 出来ました、ありがとうございます。 ただ、気になったのは、「hWnd = Text1.hWnd」の部分のコントロール名はDataGridでなくていいんですか? 何でもいいんでしょうか。

関連するQ&A

  • VB6 DataGrid コントロールについて

    お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

  • AccessのDataGridコントロールについて

    初心者です。宜しくお願いします。 VB6.0でDataGridコントロールを使用する場合は、DataSourceプロパティにRecordsetオブジェクトを代入することによりDataGridコントロールに取得したレコードセットを表示しますが、 例) Set DataGrid1.DataSource = rs Access 2000ではDataGridコントロールにDataSourceプロパティが見当たりません。 どのようにしてレコードセットを表示するのでしょうか? Google等で検索しましたがVBの情報ばかりでAccessのDataGridコントロールに関して取り上げているページが見つかりません。 宜しくお願いします。

  • VB.net webアプリケーションでのDataGridコントロールの使い方

    VB.net2003 os WinXP Pro webアプリケーションでのDataGridコントロールの使い方ですが。 グリッドの左のほうに「編集」や「削除」のボタンを出すことができたのですが、「編集」や「削除」のボタンを押したときのイベントを拾うことができません。なぜでしょうか?DataGrid1_EditCommand()イベントなど通りません。 あと、イベントが拾えたとして、押した行の位置とかを調べることができるのでしょうか?

  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

  • datagrid内にdatagridもしくはdatalistをネストしたい

    こんばんは。 現在Visual Studio .NET 2003 でASP.NET + VB.NETの ウェブフォームを作っています。 たとえばデータベースにtable1とtable2があり idをjoinさせてdatagridにバインドすると id......name.........order ------------------------------- 1.......abc...........a ------------------------------- 1.......abc...........b ------------------------------- 2.......def...........a ------------------------------- 3.......hij...........a ------------------------------- 3.......hij...........b ------------------------------- 3.......hij...........c ------------------------------- 4.......klm...........b ------------------------------- となるのですが id......name........order ------------------------------- 1.......abc...........a ..........................b ------------------------------- 2.......def...........a ------------------------------- 3.......hij...........a ..........................b ..........................c ------------------------------- 4.......klm...........b ------------------------------- このように表示させたいためdatagridを ネストさせるしかないかと思うのですが、 うまくいきません。 http://www.atmarkit.co.jp/fdotnet/dotnettips/132nesteddg/nesteddg.html このサイトを参考にしてC#のソースコードをVBに 変えてみましたがそれもうまくいきません。 どの方法が一番いいのか、datagridにdatalistを ネストさせることが出来るのかもわからず 困っています。 datagridをどうすればネストして表示できるのか、 よりいい方法があるのか、アドバイスをお願いいたします。

  • 配布先でDataGridコントロールがエラー

    vb.netで開発を行ったツールがあります。 このツールにはDataGridコントロールが使用されています。 自分のPCでは正常に動作したのですが、知人のPC(VISTA)では動作しません。 DataGridコントロールが表示される機能で「ActiveXコンポーネントを作成できません」と表示されてしまいます。 DataGridコントロールをインストーラに含めて配布する必要があるのかと推測しましたが、その方法もわかりません。 お教えいただけると助かります。よろしくお願いいたします。

  • TextBoxのIME制御について

    WinXP環境のVB6でMicrosoft Forms 2.0 Object LibraryのTextBoxを使用していますが、IME制御をするとキー入力が出来なくなります。 TextBoxのプロパティのIMEModeを4-fmIMEModeHiraganaにすると、IMEはちゃんとひらがなになるんですが、キー入力できません。 IMEをキーボードでOffにしてやると入力できます。 いろいろ試行錯誤した結果、Microsoft Forms 2.0 Object LibraryのCommand Buttonを一緒に使うと発生するようですが、その他にも原因があるようです。 デザインの関係上、Microsoft Forms 2.0 Object Libraryを使いたいのですが、ちゃんとひらがな入力できる方法を教えてください。

  • .NET DataGridの行選択

    いつもお世話になっております。 VB.NET 2003 の標準コントロールDataGridを使用しておりますが、行選択(1行のみ・編集不可)が出来ないのですが、ご存知の方おられましたら、宜しくご教授お願いします。

  • MSFlexGrid, DataGridでヘッダー編集

    MSFlexGrid, DataGridでヘッダーを次のように作りたいとですが、出来るのでしょうか。 | 科目 | | 国語 | 英語  | 数学  | 1 | 50 | 40 | 50 | 40 | 50 | 40 | 2 | 50 | 40 | 50 | 40 | 50 | 40 | 3 | 50 | 40 | 50 | 40 | 50 | 40 | こんな感じでしたいですが、出来るのでしょうか。 VB6もしくはVB.NETで作りたいですがご存知の方教えてください。ソースコードとか参考になるHPなどお願いします。

  • [.Net] DataGridのセルをマージしたい

    VB.NetでDataGridを使っています。 普通にデータを表示することはできるのですが、 セルをマージする方法はあるのでしょうか。 調べてみたのですが、なかなか見つからす困っています。 どなたか教えていただける方、お願いします。