[DllImport("USER32.DLL", SetLastError = true)] static extern bool PostMessage(IntPtr hwnd, uint msg, int LWPARA, int LPara); uint WM_LBUTTONDOWN = 0x201; uint WM_LBUTTONUP = 0x202; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int x,y; //Thread.Sleep(2000); //假设节点是可见的。 TreeNode node=treeView1.Nodes[1].Nodes[1]; x = node.Bounds.X; y = node.Bounds.Y; PostMessage(treeView1.Handle, WM_LBUTTONDOWN, node.Handle.ToInt32(),x+(y<<16)); PostMessage(treeView1.Handle, WM_LBUTTONUP, node.Handle.ToInt32(), x+(y<<16)); } private void treeView1_MouseDown(object sender, MouseEventArgs e) { this.Text += "mousedown "; } private void treeView1_MouseUp(object sender, MouseEventArgs e) { this.Text += "mouseup"; }