基本上我有一個treeview填充了許多圖像文件。我試圖讓NodeMouseHover事件調出圖像的一個小預覽。要做到這一點,我需要找出鼠標結束了什麼節點,但我不能得到它的工作,它無法找到光標位置處的樹節點。在光標下得到treenode
下面是一個簡化版本,我的代碼
private void TreeBroswer_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
{
string filePath;
PictureBox preview;
TreeNode test = TreeBroswer.GetNodeAt(Cursor.Position.X, Cursor.Position.Y);
//Also tried MousePosition.X,MousePosition.Y
if (test == null)
{
MessageBox.Show("No tree node");
}
else
{
filePath = test.FullPath;
preview = new PictureBox();
preview.ImageLocation = @filePath;
// Display preview
}
}
它未能得到樹節點無論在哪裏我的鼠標。 我不確定是否讓我的鼠標位置錯誤,或者我使用的是GetNodeAt錯誤,或兩者兼而有之。
我能用這種方式得到它的工作方式:TreeNode test = TreeBroswer.GetNodeAt(TreeBroswer.PointToClient(Cursor.Position)); – Crispy
@Crispy說什麼很重要。你需要做一個PointToClient轉換,而且沒有任何答案提到這一點。 – user2867342
它有一段時間去了,但我的答案'treeView1' ='treeBrowser',並提到了'PointToClient'的轉換。 – Turbot