У меня есть панель управления с меткой и текстовым полем рядом друг с другом. В некоторых переводах ярлык становится слишком длинным, и я пытаюсь использовать GetChildAtPoint
, чтобы определить, когда ярлык стал слишком длинным и соответствующим образом укоротить его (я знаю, что есть другие/лучшие способы, но я несколько ограничен в своем подходе, следовательно, это опция).GetChildAtPoint не выполняет ZOrder
Я проверил индекс и метка 41, в то время как текстовое поле равно 0.
Я использую panelControl.GetChildAtPoint(new Point(labelControl.Location.X + labelControl.Width, labelControl.Location.Y))
, чтобы попытаться определить, если метка является слишком длинным или нет, но по какой-то причине, приведенный выше код возвращает вместо текстового поля.
В отлаживать, labelControl.Location
= 566, 305 и textBoxControl.Location
= 716, 290. Контроль этикетки имеет ширину 202.
Я видел этот подход работать в других случаях и не может видеть никаких различий здесь, так Я действительно не уверен, почему он не работает в этом сценарии.
значения, они приведены из отладки/выполнения. Я не уверен, что еще вы хотите мне предоставить? – Trent
Местоположение - это фактические данные? Можете ли вы также предоставить расчетные данные новой точки (labelControl.Location.X + labelControl.Width, labelControl.Location.Y) – zquanghoangz
768,305 (ширина текстового поля более 200) – Trent