
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PC内で速度を遅くした音源をCD...
-
AndroidスマホのマイクロSDをPC...
-
A4の紙に印刷されている文字を...
-
eclipseでタブ入力ができなくな...
-
Access2016のExcelインポートの...
-
swfとswfを重ねる
-
ニンテンドッグスについて教え...
-
VSのコードエディター上の表示
-
自作扉の材料は何がいい?集成...
-
個別に違う添付ファイルを付け...
-
パワーワードの意味
-
GIMP separate+プラグイン クラ...
-
Accessのソースが見れない
-
PDFファイルの倍率を変えて保存...
-
USBメモリとSSDのデータの保存...
-
Visual Basic.NETの、Form 間で...
-
至急エクセルで最小限の保存が...
-
【VBA】マクロの入ったファイル...
-
Googleマップに保存した地点が...
-
PHPからエクスプローラーや電卓...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のブックを新しいブックのS...
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
拡張子「.IDJ」を、windo...
-
PC内で速度を遅くした音源をCD...
-
ガラケーからPCへの写真の取り込み
-
エアコンの冷媒 R410Aの重...
-
エクセルで「特定の文字を含む...
-
GIMP separate+プラグイン クラ...
-
A4の紙に印刷されている文字を...
-
TextBoxにフォーカスを与えると...
-
Fortniteのクラッシュについて
-
リストビューの選択状態を取得...
-
パソコン名、IPアドレスをH...
-
スマホでtxtファイルを編集する...
-
Accessのソースが見れない
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ファイル数と合計サイズの取得方法
-
2枚、マイクロSDカードを入...
-
flash (.swf) を編集したい
おすすめ情報