我正在运行时构建TextBox
:
edit = new TextBox();
this.Controls.Add(edit);
edit.BorderStyle = System.Windows.Forms.BorderStyle.None;
稍后我会设置编辑框的位置(Location
,Left
/ Top
):
edit.Location = new Point(newX, newY);
问题是之前我调整文本框的位置Height
20 px 。 e.g:
edit.Height 20
但是只要我更改Location
,文本框的高度就会变为 13 px ,例如:
edit.Height 13
问题当然是我的newY
值基于文本框的高度。一旦我调整文本框的位置,它就会收缩 - 使我的计算值无效。
我想要的是强迫TextBox
重新考虑它的高度的方法:
之前
newX = (int)Math.Round(2*scaleFactor.Width);
newY = (containerHeight - edit.Height) / 2;
后
edit.RethinkAutoSize();
newX = (int)Math.Round(2*scaleFactor.Width);
newY = (containerHeight - edit.Height) / 2;
我怎么能告诉文本框更新它的内部意义呢?它是“适当的”高度?