Как определить ширину окна формы элементов управления, ширина которого была увеличена, потому что она привязана? - PullRequest
1 голос
/ 16 января 2010

У меня в настоящее время есть текстовое поле в Windows Forms, и мне нужно динамически добавить элемент управления PictureBox справа от текстового поля.

Я создаю PictureBox программно, и я при настройке местоположения PictureBox, я устанавливаю так:

pBox.Location = новая точка (tbControl.Location.X + ctrl.Width, ctrl.Location.Y);

Таким образом, я устанавливаю поле для изображения, чтобы оно находилось в положении X текстового поля, а также ширину текстового поля. Однако, поскольку текстовое поле имеет свойство привязки, установленное вправо, его ширина увеличивается, чтобы заполнить пространство между собой и границей формы.

Проблема в том, что, хотя ширина текстового поля визуально больше, чем фактическое значение Textbox.Width. свойство Width не учитывает дополнительную ширину привязки.

Я уже пробовал свойства, такие как Textbox.Bounds.Width, Textbox.ClientSize.Width, Textbox.DisplayRectangle.Width и т. Д., Но без удачи Все эти свойства возвращают исходную ширину элемента управления без учета изменения ширины из-за свойства Anchor.

Кто-нибудь знает, как я могу определить реальный размер текстового поля? Спасибо

Ответы [ 2 ]

2 голосов
/ 16 января 2010

Свойство Width всегда отслеживает текущую ширину элемента управления, независимо от того, привязан он или нет. Тем не менее, TextBox будет расти, когда вы увеличите размер контейнера, и он будет перекрывать PictureBox. Вы также должны закрепить ПБ справа.

0 голосов
/ 16 января 2010

Они должны возвращать скорректированный размер. Либо вы ссылаетесь на неправильное текстовое поле, либо выполняете запрос до того, как размер фактически изменится.

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