我有一个TreeView对象,为了让用户能够从其中删除节点,我需要删除这个对象,所以我让分配给要删除的节点的ToolStripMenu。但我想知道在不使用treeView.SelectedNode属性的情况下按下哪个节点并触发了delete_toolStripMenuItem_Click事件。
有没有办法知道被按下的确切节点?
发布于 2014-07-30 23:27:02
这里有一种方法。您将处理TreeView的MouseDown()事件,并使用TreeView.GetNodeAt()确定右键单击了哪个TreeNode。将TreeNode存储在表单级别,以便您可以在删除菜单处理程序中访问它:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private TreeNode _TN = null;
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
_TN = treeView1.GetNodeAt(e.X, e.Y);
}
}
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
if (_TN != null)
{
MessageBox.Show(_TN.Text);
}
}
}https://stackoverflow.com/questions/25039860
复制相似问题