2

私はTextBoxこのように見えるようにしたい
ここに画像の説明を入力

TextBoxコントロールの左側と右側を削除するにはどうすればよいですか?

4

2 に答える 2

1

通常、これを行うには OnPaint イベントをオーバーライドする必要がありますが、Textbox の場合、OnPaint が呼び出されないため、これは機能しません。

アプローチは、ここで説明されているように TextBox をサブクラス化することです

ただし、これを行うことはまったくお勧めしません。特にプログラミングに慣れていない場合は、私にとっては困難な作業のように思えます (自分でこれを行ったことはありません)。

TextBox の上または下に線を引くだけで十分でしょうか?

-編集-

多分これはそれをよりよく説明します:

TextBox は、カスタム ペイントできないという点で特別です。カスタム境界線だけが必要な場合は、新しい UserControl を作成し、境界線スタイルを [なし] に設定した TextBox を追加できます。TextBox の外側に境界線用の十分なスペースを確保してください。次に、UserControl サーフェスに境界線をペイントします。別の方法として、TextBox の WM_NCPAINT メッセージを処理して境界線を描画する方法がありますが、これはかなり複雑です。

ソース: msdn フォーラムの shawn.ohern:こちら (申し訳ありませんが、彼の投稿に直接リンクする方法がわかりませんでした)

-edit2- このリンクは、独自の TextBox を作成する方法を示しています。これも、C# とプログラミングに不慣れな人にはお勧めしません ;)

于 2013-03-21T09:30:42.587 に答える
0

Windows フォームは Win32 API に基づいており、UI の記述に宣言型言語を使用する WPF とは異なり、独自のコントロールの描画を完全に制御できます。

こちらをご覧ください:カスタム コントロールのペイントとレンダリング

于 2013-03-21T09:30:08.613 に答える