我正在尝试在 TextBox 中放置一个标签。但是,我在让标签在文本框中正确定位时遇到了一些麻烦。我可以让它显示在文本框中,但这就是我的问题出现的地方。当我尝试定位标签时,它似乎无法正常工作。我有以下片段在 TextBox 的构造函数中添加标签:
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);
}
}
编辑:我让它工作了,但这只有在我从表单中删除文本框并重新添加它时才生效......