Как заставить TextBox переосмыслить его предпочтительную высоту? - PullRequest
2 голосов
/ 13 декабря 2011

Я создаю 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;

Как я могу указать текстовому полю обновить его внутренний смысл "правильной" высоты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...