Здравствуйте,
мне нужно получить абсолютную координату У моего контрола (верхнюю грань контрола), в данном случае — panel1:System.Windows.Forms.Panel. Мой panel1 лежит в контроле TabControl, вернее в TabPage. Для нахождения координаты У я использую следующий код:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(GetTopBorderPosition(panel1).ToString());
}
private int GetTopBorderPosition(Control control)
{
int result = control.Top;
object parent = control.Parent;
while (!(parent is Form))
{
result += ((Control)parent).Top;
parent = ((Control)parent).Parent;
}
result += FindForm().DesktopLocation.Y;
return result;
}
Результатом является координата У верхней грани контрола TabControl. То есть не учитываются никак высота TabPage-шапки. Я понимаю, что нужно бы использовать TabPage.ClientRectangle, но TabPage.ClientRectangle.Y равняется всего 3, а это не похоже нужное значение.
Есть идеи?
Спасибо.