- - PR -
TextBoxのBorderStyle変更時の文字列描画位置について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-10-17 18:22
お世話になります。
C#(VS2005)を用いてのWindowsアプリケーションの開発関連です。 TextBoxを継承したコントロールにおいて、 Readonly= True (読み取り専用)時には、TextBoxの枠線を消去する 機能付加を行っています。 オーバーライドしたReadOnlyプロパティ内で、TextBoxのBorderStyleを BorderStyle.Noneにすることでの枠線消去機能の実装を行っているのですが、 BorderStyle変更時にTextBoxのHeightが変更されてしまい、 文字列の描画位置が左上に移動してしまいます。 BorderStyleを変更時でも、同じ場所に文字列を描画したいと考え、 継承コントロール内で以下の方法を試し、頓挫しました。 1.OnPaintをオーバーライドして、TextRenderer.DrawTextで文字列を描画する。 →フォーカス取得時の描画にて、フォントが変更されるため、挫折。 2.変更されたTextBoxのHeightをMultilineとPaddingを指定して、強制的に元に戻す。 →TextBoxのPaddingプロパティに値を設定しても、余白が設定されないため、挫折。 枠線だけを消去できて、文字列の描画位置が変更しないという 実装方法をご教授いただけますでしょうか? |
|
投稿日時: 2007-10-17 18:53
コントロールを自作した方が早いように思えます。
組み合わせとしては枠だけのコントロール + 枠なし TextBox ですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1