我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解相关的知识,希望对你有一定的参考价值。

我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解决,谢谢啦,附图一张

这个错误跟代码没关系。
编译器编译的时候(如果代码有更新),需要删除掉原有的exe文件和依赖的dll文件。然后重新生成新的。
windows系统下,当一个文件正在被使用时,是不允许删除或者覆盖操作的。(就像你打开了一个EXCEL,你是不可能删除他的,除非你先将其关闭)。
一般来说,当你停止调试(SHIFT +F5)或者关闭了这个程序时,进程是会被关闭的,但是由于各种各样的原因,会导致该进程没有被关闭。
所以,报这种“xxx正在被进程使用,无法访问该文件”的错误时,一般有两种方式
1、右键你的解决方案(不是项目,是解决方案),清理解决方案。 然后重新编译整个解决方案。
2、如果清理不管用, 将你的项目全部保存,然后关闭VS,重新打开该解决方案。
(尽管有点傻,但是这种问题确实经常出现)追问

我做一个东西,有错误时,就取消保存,然后重做。那出现问题和这有关系没

追答

没有关系。

这个异常只有编译(F6或者CRTL+SHIFT+B)时,才会报出来。 这个错和你代码本身没有任何的关系,只是单纯的有个进程没有KILL,导致VS无法重新编译而已。

其他的错误只要代码里更改完,自动就会消失的。

参考技术A 看一下是 不是有一个之前启动的程序没有关掉追问

请问怎样找到?

追答

可以尝试关闭VS, 然后再任务管理器里看看是否还有VS相关的进程, 有的话,结束掉, 然后重新启动VS,试一下

追问

好的

WPF--鼠标右键菜单中的Command命令实现

一个功能,在ListView中的ListBoxItem控件上实现右键菜单关闭选项,将该ListBoxItem从ListView中删除。

利用 RoutedCommand类创建Command命令,MSDN上将其定义为一个实现 ICommand 并在元素树之内进行路由的命令。

 

C#代码:

 private RoutedCommand closeCmd = new RoutedCommand("Clear", typeof(MainWindow));
private void ListBoxItem_MouseRightButtonUp(object sender,MouseButtonEventArgs e)
        {
            
                ListBoxItem data = new ListBoxItem();
                data = (ListBoxItem)sender;
                
                MenuItem close = new MenuItem();
                close.Header = "删除";

                //声明Mycommand实例                
                close.Command = closeCmd;
                closeCmd.InputGestures.Add(new KeyGesture(Key.D, ModifierKeys.Alt));   //添加快捷键
                close.CommandTarget = data;   //命令作用目标

                CommandBinding cb = new CommandBinding();
                cb.Command = closeCmd;
                cb.CanExecute += cb_CanExecute;
                cb.Executed += cb_Executed;
                data.CommandBindings.Add(cb);
                 
                data.ContextMenu = new ContextMenu();
                data.ContextMenu.Items.Add(close);
                data.ContextMenu.IsOpen = true; 
            
        }

        private void cb_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            ListBoxItem obj =(ListBoxItem)sender;
            this.listView.Items.Remove(obj);
            e.Handled = true;
        }

        private void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            
            e.CanExecute = true;
            e.Handled = true;
        }

 

Command的其他实现方式可根据情况选择使用,这种实现方式方便于对UI界面中的元素进行操作。

以上是关于我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解的主要内容,如果未能解决你的问题,请参考以下文章

WPF--鼠标右键菜单中的Command命令实现

Zara带你快速入门WPF---Command与功能区控件

C#,WPF,treeview,我用了selected函数,为何每次点击子节点时,它会同时响应子节点和父节点的操作呢

WPF中的Command事件绑定

WPF之路-键盘与鼠标事件 - 简书

如何从 WPF 中的子控件中获取键盘?