某项目中,需通过com口的方式读取CF卡的rfid,。

问题:当我关闭模块,然后第二次打该模块时,弹出如下错误”对端口Com1的访问被拒绝”(编程这一行业,不是找不到对象,就是被xxx拒绝!):

断点调试:在用户控件Loaded事件尝试打开Com口时出现异常:对端口Com1的访问被拒绝”。

最后找到原因及解决方法:

加载用户控件时打开了com口,关闭模块时同时也该关闭com口,但是用户控件没有Closing或Closed事件,咋办呢?于是我用了UnLoaded事件解决了这个问题,反复打开关闭模块,不再出现”访问com口被拒绝”这个错误:

UnLoaded事件:

关闭Com口:

总结:WPF之Window.Closing 、Window.Closed、FrameworkElement.Unloaded

三则的区别:

Window.Closing 事件 :在调用 Close 之后立即发生,并且可进行处理以取消关闭窗口。

可以处理 Closing 来检测窗口何时关闭(例如,何时调用 Close)。此外,可以使用 Closing 来阻止窗口关闭。若要阻止窗口关闭,可以                                            将CancelEventArgs 参数的 Cancel 属性设置为 true

当调用 Close、单击窗口的“关闭”按钮,将引发 Closing 事件。

代码示例:

   private void Window_Closing(object sender, CancelEventArgs e)

        {

            if (this.IsLoaded)

            {

                MessageBoxResult result = MessageBox.Show("是否退出程序?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)

                {

                    //do something to record the shutdown event

                    DateTime shutDownDt = DateTime.Now;

                }

                else

                {

                    e.Cancel = true;

                }

            }

        }

Window.Closed 事件:在窗口即将关闭时发生。

                                 一旦引发此事件,就无法阻止窗口关闭。

FrameworkElement.Unloaded事件:当从加载的元素的元素树中移除元素时发生。

在某些情况下是不会被触发的。比如说:Window在Closing的时候,是不会去触发它的子元素的Unloaded 事件。

Loaded和UnLoaded和UI有关。Closing和窗体本有关。

比如下窗口初始化的时候,如果窗口是隐藏的,那么Loaded是不会触发的。

因为它只在这个控件开始Visible的时候触发。同理,UnLoaded也是。

对端口Com1的访问被拒绝的更多相关文章

  1. sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝、不能打开到主机的连接,在端口1433:连接失败等 解决方案

    问题: sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝 telnet 127.0.0.1 1433     提示:不能打开到主机的连接,在端口1433:连接失败 解决方案: ...

  2. 通过rinetd实现端口转发来访问内网的服务

    通过rinetd实现端口转发来访问内网的服务 一.   问题描述 通过外网来访问内网的服务 二.   环境要求 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 三 ...

  3. Linux CentOS7 开启80,443端口外网访问权限

    一.查看系统防火墙状态(如果返回 running 代表防火墙启动正常) firewall-cmd --state 二.开启端口外网访问 1.添加端口 返回 success 代表成功(--permane ...

  4. 对路径的访问被拒绝,解决之后又报-未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

    服务器环境:Server 2008  64位系统 问题:在导入Excel题录表时报错,1对路径的访问被拒绝,2未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序. 解决方案 ...

  5. Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝。”问题修正(转)

    原来在Win7下Visual Studio跑的好好的程序,现在在Win8下编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”的错 ...

  6. Tomcat8 localhost+端口可以访问Manager APP,而IP+端口不可以访问 解决办法

    localhost + 端口可以正常访问Manager APP,而IP + 端口不能访问Manager APP,报403错误.(我的主机环境是Ubuntu16.04) 前提是你已经配好了tomcat_ ...

  7. IIS 中文文件名下载会出现403访问被拒绝

    IIS 中文文件名下载会出现403访问被拒绝 服务器在安全加固后,出现了IIS 中文文件名下载会出现403访问被拒绝 换成英文的就好了

  8. MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝。

    代码编写完成,计划发布一个版本测试,没想到发布到IIS7 竟然报错“403-禁止访问”.还真第一次遇到这种问题..... 折腾了半天,终于解决. 1.提示报错403: 禁止访问: 访问被拒绝.您无权使 ...

  9. winServer2003除默认端口外的其他端口只能本地访问,关闭防火墙即可

    winServer2003除默认端口外的其他端口只能本地访问,关闭防火墙即可

随机推荐

  1. [DP优化方法之斜率DP]

    什么是斜率dp呢 大概就把一些单调的分组问题 从O(N^2)降到O(N) 具体的话我就不多说了 看论文: http://www.cnblogs.com/ka200812/archive/2012/08 ...

  2. laravel5 MAC is invalid

    如果本机的环境更换过,项目中用来加密Crypt组件中的参数会变更. 如果出现这个问题,得更换数据库中加密后的变量 stackoverflow上找到的解决方法都是 composer dump-autol ...

  3. Func,Action 的介绍

    Func,Action 的介绍 Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中 ...

  4. [SOJ] 无路可逃?

    Description 唐僧被妖怪关在迷宫中.孙悟空好不容易找到一张迷宫地图,并通过一个魔法门来到来到迷宫某个位置.假设迷宫是一个n*m的矩阵,它有两种地形,1表示平地,0表示沼泽,孙悟空只能停留在平 ...

  5. 跳转到设置页面 与appstory

    //MARK:系统跳到应用设置页面 func systemMySet(){ let url = NSURL(string: UIApplicationOpenSettingsURLString) if ...

  6. ios 开发证书 appids 描述文件关系

    当你准备进行真机测试或者发布应用到App Store上去的时候, 免不了要申请相应的证书.(Development--测试证书. Distribution--发布证书) 进入证书管理相应网站https ...

  7. 反射机制(reflection)动态相关机制

    功能:动态获取类的信息以及动态调用对象的方法. Java反射机制主要提供了以下功能: 1.在运行时判断任意一个对象所属的类. 2.在运行时构造任意一个类的对象. 3.在运行时判断任意一个类所具有的成员 ...

  8. incredibuild agent service is not running

    incredibuild 不用介绍了,今天因为服务没有启动报错显示为: incredibuild agent service is not running 解决方法为: 在Incredibuild的安 ...

  9. Openlayer 3 删除上一次绘制的图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Python 函数之路

    ---恢复内容开始--- python函数的定义 def add(): a = 1 b = 2 c == a + b print(c) 函数就是把一段实现某一个功能的代放进一个封装的方法名里,这个方法 ...