![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
OS:Windows 7 64bit
開発環境:Visual Studio 2013 Express
リッチテキストボックスでキャレットの幅を変更したいのですが、うまくいきません。
-------------------------------------------------------------
'キャレットを作成する
Private Declare Function CreateCaret Lib "user32" _
(ByVal hWnd As IntPtr, _
ByVal hBitmap As IntPtr, _
ByVal nWidth As Integer, _
ByVal nHeight As Integer _
) As Boolean
'キャレットを表示する
Private Declare Function ShowCaret Lib "user32" _
(ByVal hWnd As IntPtr) As Boolean
Private Sub RichTextBox1_Enter(sender As Object, e As EventArgs) Handles RichTextBox1.Enter
'CreateCaret(RichTextBox1.Handle, IntPtr.Zero, 7, 15)
CreateSolidCaret(5, 10)
ShowCaret(RichTextBox1.Handle)
End Sub
-------------------------------------------------------------
以上のようにして RichTextBox1 にフォーカスが来た時にキャレットの幅を変えるようにしているのですが、一度だけフォーカスが来た時にほんの一瞬だけ四角いキャレットが見えるのですが、すぐにI型に戻ってしまいます。
ググっても上記ソースくらいしか見つかりませんでした。
どなたかご享受願えませんでしょうか?
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
プロシージャを抜けると作成されたキャレットが破棄されるように仕様が変更されたようで
RichTextBox1_Enter イベントで作成するとすぐにRichTextBox1_GotFocus イベントが発生し
その時点で破棄されるので、一瞬しか確認できないのです。
どうしてもなら、RichTextBox1_GotFocus イベントで作成すると次のイベントが発生するまでは
破棄されませんので表示されるようになります。
但しキー入力やマウスダウンイベントが発生すると破棄されるので、キーアップイベントと
マウスアップイベントにも書いておく必要があります。
(ダウン イベント書くと直後にアップ イベントが発生するのですぐに破棄される事になり表示されません)
テキストボックスとRichTextBox とその辺の仕様が違う理由については、よく知りません(調べていない)
ありがとうございます。
テストした結果、vbhanatyanさんの仰るとおりのようです。
今回はキャレットの変更は諦めます^^;
それにしても、なんでこんな仕様に変更したのか・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
個別に違う添付ファイルを付け...
-
複数のブックを新しいブックのS...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
VBS フォルダ内にあるすべての...
-
ガラケーからPCへの写真の取り込み
-
スマホでtxtファイルを編集する...
-
e-taxで送信ファイルの拡張子が...
-
EXCELマクロでのtifファイルの...
-
プロ野球の結果を教えてください
-
USBメモリーで無線でPC転送でき...
-
TextBoxにフォーカスを与えると...
-
抗がん剤投与後のフラッシュ
-
エアコンの冷媒 R410Aの重...
-
クラリスインパクトに替わるソ...
-
画像をトリミングしてフォルダ...
-
typedefのスコープに関して。
-
2枚、マイクロSDカードを入...
-
PC内で速度を遅くした音源をCD...
-
MIXでケロケロかけたいのですが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
個別に違う添付ファイルを付け...
-
e-taxで送信ファイルの拡張子が...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
スマホでtxtファイルを編集する...
-
ビデオファイルのプロパティの...
-
ガラケーからPCへの写真の取り込み
-
2枚、マイクロSDカードを入...
-
拡張子「.IDJ」を、windo...
-
エアコンの冷媒 R410Aの重...
-
PC内で速度を遅くした音源をCD...
-
ファイル数と合計サイズの取得方法
-
stdio.hの中身
-
VBA:カウンターの i の値が開放...
-
GIMP separate+プラグイン クラ...
-
リストビューで選択行の背景を...
-
VBS フォルダ内にあるすべての...
-
カメラのフラッシュは大丈夫?
-
複数のブックを新しいブックのS...
おすすめ情報