Как преобразовать координаты экрана в относительные координаты (winforms)?
У меня есть следующая функция (что неверно):
private void TreeView_DragDrop(object sender, DragEventArgs e)
{
TreeNode CurrentNode =
TreeView.GetNodeAt(e.X - this.Left - NotesView.Left,
e.Y - this.Top - NotesView.Top);
// [snip]...
}
но это неверно, потому что он не учитывает украшения формы... Я уверен, что должен быть лучший способ сделать это, кроме жесткого кодирования (что все равно будет неправильно, в зависимости от нескольких вещей, таких как Vista vs XP vs Win2k), но я не могу его найти.
1 ответов
вы можете использовать:
Point clientPoint = TreeView.PointToClient( new Point( e.X, e.Y ) );
для получения относительных координат.