Абсолютное положение контрола
От: VisitorS  
Дата: 04.09.07 10:13
Оценка:
Здравствуйте,

мне нужно получить абсолютную координату У моего контрола (верхнюю грань контрола), в данном случае — 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, а это не похоже нужное значение.

Есть идеи?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.