我有一个TreeView和一个多行TextBox。当用户单击树视图中的节点时,它的Text
属性将添加到TextBox中。
默认情况下,每次单击一个节点(或者当treeview具有焦点和那种东西时点击输入......),TextBox将被清除,并且将添加所选节点的新Text
但我正在寻找一种方法,当用户持有修改键(ctrl或shift ...)时,文本框将不会被清除,新选择的节点的文本将被添加到文本框中而不会清除任何内容。
我正在考虑使用布尔值,每当按下修饰键时,它都会变为false,当键被释放时,它会返回true。
public bool ClearBox = true;
随后:
private void AddText(string text)
{
if(ClearBox == true) //by default it is true
{
textBox.Clear();
textBox.Text = text;
}
else //user is holding a modifier key so the ClearBox is false now
{
textBox += Environment.NewLine + text;
}
}
节点选择事件:
private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
//How to check here if a modifire key is being pressed (holded) ?
this.AddText(treeView.SelectedNode.Text);
}
答案 0 :(得分:1)
您可以询问表单中属性ModifierKeys
按哪个修饰键。在您的代码中,您必须这样做:
private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
if (ModifierKeys == Keys.ShiftKey)
{
this.AddText(treeView.SelectedNode.Text);
}
}