Я создаю 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 .Например:
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;
Как я могу указать текстовому полю обновить его внутренний смысл "правильной" высоты?