【问题标题】:C# Windows form delete key not respondingC# Windows 窗体删除键没有响应
【发布时间】:2016-12-03 05:24:30
【问题描述】:

在我的 C# windows 窗体应用程序中,我希望用户能够通过按下键盘上的删除键来删除节点,并且已经实现了看似正确的代码,但是当按下删除键时没有任何反应。

        private void treeView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys .Delete)
        {

            if (treeView1.SelectedNode != null)
            {
                treeView1.SelectedNode.Remove();
            }
        }

这是我试图用来实现所需功能的代码。

【问题讨论】:

  • 您是否在处理程序中放置了一个断点,以查看该代码是否执行?
  • 我刚试过,似乎有问题的代码甚至从未执行过
  • 视图可能只是失去焦点,在这种情况下它不会接收到关键事件。因此,您要么以编程方式聚焦:treeView.Focus(...),要么改用 CoreWindow:Window.Current.CoreWindows.KeyDown+=...
  • 你为什么不问你最好的油炸调试器???

标签: c# visual-studio visual-studio-2010 windows-forms-designer


【解决方案1】:

键盘键码检查对我来说看起来不错,它告诉我 treeView1.SelectedNode 可能返回 null。

【讨论】:

    【解决方案2】:

    我今天遇到了这个问题,并尝试了很多方法来解决它。 MSDN实际上给出了答案。这是我输入的两个代码public Form1()

    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(Form1_KeyDown);
    

    我这周刚刚学习了 C#,所以我想弄清楚代码的含义。只是希望这种方法对需要的人有用。

    如果有人能解释上面的代码,我将不胜感激。

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      • 2011-06-01
      • 2016-11-17
      相关资源
      最近更新 更多