- - PR -
TextBox.Enabled = false の時の前景色
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-03-05 12:42
あれ、知らない間にレスがたくさんついてる。
メールが送信されるハズのなのに・・・ 皆様、ご回答ありがとうございます。 現状は、 ゆうじゅんさんの ReadOnly属性をつけてタブオーダーからはずす。 に加えて、 ●HideCaret API関数で、テキストボックスのチカチカを消す。 ●それから、マウスでクリックされたときには、入力状態のマウスポインタを 矢印マークのマウスポインタに変えて、以前のコントロールにフォーカスを移す。 としています。 ラベルでもいいのですが、.NETだと、テキストが勝手に折り返されてしまいます。 ラベルの概観も以前と違いますよね。概観は、以下の方法でテキストボックスと同じに 出来ました。 Private Sub ctlLabel_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ctlLabel.Paint 'ラベルコントロールのオーナードロー 'ラベルコントロールの3D表示の堀りを深くする If ctlLabel.BorderStyle = BorderStyle.Fixed3D Then e.Graphics.DrawLine(New Pen(SystemColors.ControlDarkDark), 0, 0, ctlLabel.Width - 4, 0) e.Graphics.DrawLine(New Pen(SystemColors.ControlDarkDark), 0, 0, 0, ctlLabel.Height - 4) End If End Sub テキストボックスの文字を黒で、再描画できればいいのですが・・・ 難しいですね。 |
|
投稿日時: 2004-03-08 16:51
こんな方法もあるので参考までに
TextBox を継承した後、WndProcを呼び出します。 その値が、WM_PAINT の場合には、独自のペイントをおこなうこと で対応可能です。 但しWM_PAINTを受信した場合に 必ずなってしまうのでタイミングが限定できず 意図しないときにも独自のペイント処理が 行われてしまうので考慮が必要です。 |
