TextBox 内に Label を配置しようとしています。ただし、ラベルをテキスト ボックス内に正しく配置するのに問題があります。テキストボックス内に表示することはできますが、ここで問題が発生します。ラベルを配置しようとすると、正しく機能していないように見えます。TextBox のコンストラクター内に Label を追加する次のスニペットがあります。
Label lblClear = new Label();
lblClear.Text = "X";
lblClear.Font = this.Font;
lblClear.Location = new Point(this.DisplayRectangle.X + (this.DisplayRectangle.Width - 15), this.Bounds.Y);
lblClear.Size = new Size(15, 15);
this.Controls.Add(lblClear);
ただし、これは私が期待しているようにテキストボックスの右側に配置するのではなく、テキストボックスの真ん中に配置します。ClientRectangle、DisplayRectangle、または Bound がテキストボックスのサイズを返さないのはなぜですか? 基になる texbox の四角形は、実際に画面に表示されるものよりも小さいですか?
どんな助けでも大歓迎です。ありがとうございました。
編集:これは私が話していることのスクリーンショットです:
そして、ここに私が持っているクラスがあります:
public class SearchTextBox : TextBox
{
public SearchTextBox()
{
InitializeComponent();
Label lblClear = new Label();
lblClear.Text = "X";
lblClear.Font = this.Font;
lblClear.Location = new Point(this.DisplayRectangle.X + (this.DisplayRectangle.Width - 15), this.Bounds.Y);
lblClear.Size = new Size(15, 15);
this.Controls.Add(lblClear);
}
}
編集:私はそれを機能させましたが、これはフォームからテキストボックスを削除して再度追加したときにのみ有効になりました...