タイトル | : Re^4: テキストボックスの入力プロンプトの非表示 |
記事No | : 1854 |
投稿日 | : 2005/06/23(Thu) 13:23 |
投稿者 | : 花ちゃん |
ユーザビリティ かどうかは、そのソフトを使う人が決める事だと私は思って いるので、その辺の議論は、別として (実際、ReadOnly プロパティ やHideCaret 関数があるのだし)
HideCaret 関数 を .NET で試して見たのですが、ちょっと動きが素直でないようなので 注意が必要かと思います。 キャレットが移動すると表示してしまうのでEnter イベントに書かないで GotFocus イベントに書く必要があるようです。 Enter イベント → GotFocus イベント の順番でイベントが発生しており、Enter イベントに 書くとGotFocus イベントで表示してしまう。
表示する場合は、ShowCaret API 関数を使いますが、HideCaret 関数を使用しなければ 表示するので、フラグでも設定してやればいいかと思います。 (使用方法に合わせてコードを書いて下さい。下記は参考までに)
Private Declare Function HideCaret Lib "user32.dll" (ByVal hwnd As IntPtr) As Integer Private crtHide As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click crtHide = True End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click crtHide = False End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles TextBox1.GotFocus If crtHide Then Call HideCaret(TextBox1.Handle) End If End Sub
'-----------------------------------------------------------------------
>>Win32 API 関数の HideCaret を使用すれば… >というのが良く分かりません(汗)
こう言った場合、Googleで[HideCaret]をキーワードに検索して見て下さい。 (これは、当サイトのお約束事です。 hhttp://www.bcap.co.jp/hanafusa/hazimeni.htm#keijiban )
|