关于c# winform wince的两个问题

问题描述

关于c# winform wince的两个问题

最近用c#在wince5.0设备上开发了个winform小程序,期间遇到两个问题,折腾了好久,还是没解决。
问题1:关于OpenFileDialog.InitialDirectory

 OpenFileDialog dlg = new OpenFileDialog();
 dlg.InitialDirectory = Login.sFilePath;
 dlg.Filter = "txt files (*_out.txt)|*_out.txt";
     代码如上,如果加上第二句话(dlg.InitialDirectory = Login.sFilePath;),当执行到这句话的时候,dlg立马会被关闭。如果不加这句话,就能正常显示。

问题2:关于“stackoverflowexception”的问题

当弹出太多“MessageBox”时,会出现“stackoverflowexception”的异常。基于这个问题,现在处理的方法是:按键盘上的某个键,触发关闭MessageBox的事件,代码如下。下面这个函数,确定可以关闭MessageBox,但是,当弹出多个MessageBox时,还是会出现“stackoverflowexception”异常。
private void KillMessageBox()
{
IntPtr ptr = FindWindow(null, "title");
if (ptr != IntPtr.Zero)
{
PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
}
}

基于以上两个问题:1.在wince系统下,OpenFileDialog如何设置初始的路径?;2.上面的代码,如何修改,才能避免出现“stackoverflowexception”异常?

解决方案

Login.sFilePath;的值是什么?是否为null
另一个问题,检查代码中是否有过深的递归,或者事件中又触发了新的事件

解决方案二:

关于OpenFileDialog.InitialDirectory,请参考:
https://technet.microsoft.com/zh-cn/magazine/system.windows.forms.filedialog.initialdirectory(VS.80).aspx

关于“stackoverflowexception”的问题
请设置一个全局变量,记录MessageBox的弹出状态,禁止弹出多个。

时间: 2024-12-22 10:57:11

关于c# winform wince的两个问题的相关文章

Winform程序,两次复制同一文件,一次速率为5M/s,一次速率高达500m/s,这是为什么?跪求大神解答

问题描述 我编了一个usb速率测试软件,Winform,复制一个4.6兆的文件到D盘,但两次复制,速率相差太大.这是为什么呢?跪求大神指点!这是复制程序:privatevoidUsb1Set(){if(cmb1.Text!=null)//获取待复制文件的下拉列表.{lbact1.Text=null;//复制时间lbafs1.Text=null;//文件大小lbats1.Text=null;//速率isDone[0]=false;//是否复制完成的标志我要同时测四个usb,这只是第一个file[0

winform 窗口下面两个图标有何区别呀?求科普。

问题描述 解决方案 解决方案二:用户控件吧...解决方案三:图截全点,看看后面是什么描述解决方案四:我特么打开帖子你就给我看两个娃娃的截图?解决方案五:为啥我的是不一样的解决方案六:不知道楼主问的什么?解决方案七:没看明白你想问什么~~解决方案八:自己拖了用看看就知道了解决方案九:继承的基类不一样的原因吧解决方案十:用户控件和窗体的区别?

新手:C# 请提供程序设计思路__ 一个Winform窗口操作两个串口,一个用于蓝牙数据处理,另外一个用于打印机数据传输。。

问题描述 一直做底层开发.突然被boss安排写一个C#的产测软件.先来这里听取下大家的建议.a--功能需求描述如下:1.需要用到两个串口[A,B],A用于蓝牙通信,B用于打印机通信.A,B两者的串口参数都是可以用户选择的.2.蓝牙使用A串口通信,充当透传模块,作为主模块去扫描其他多个蓝牙模块并与其中一个蓝牙模块建立连接,需要测试数据传输,当检测到主界面上的detect按键按下后则开始扫描蓝牙.3.蓝牙数据传输OK后,需要使用串口B给打印机发送一个字符串,其中包括当前测试的蓝牙MAC地址.b--附

关于两个combox联动问题

问题描述 在winform中加两个combox,第一个设置两个值a和b,选择a时combox2下拉中显示c和d,combox1中选择b时,combox下拉列表出现m和n而不出现c和d,具体怎么做啊?具体代码怎么写啊?还有一个问题,selected.indexchanged和valuechanged什么区别?菜鸟刚接触,虚心向大侠求教 解决方案 解决方案二:privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){swit

winform窗口的控件有Validated事件我还能理解,为什么winform本身也有这个事件?

问题描述 一个winform窗口上我创建一个textBox和一个button,我能添加textBox的Validating/Validated事件响应来控制用户的输入,这个我能理解没有问题.但是,winform大窗口本身看起来也能添加Validating/Validated事件响应,这个我感觉不到有什么作用啊,winform上如果有多个控件的话,那到底Validate谁呢?换句话说,validate是一个动词,那么在winform上,这个动词的确切宾语到底是哪个? 解决方案 解决方案二:肯定有参

求教用C#winform实现联网的多人聊天

问题描述 做毕业设计做的是仿QQ实现网络聊天,但是在通讯这块遇到瓶颈了,不太明白监听这块,就是用C#winform简单的两个用户进行聊天,类似于QQ那种单独聊天,越简单越好,希望能提供代码,感激不尽. 解决方案 解决方案二:引用楼主u012409239的回复: 做毕业设计做的是仿QQ实现网络聊天,但是在通讯这块遇到瓶颈了,不太明白监听这块,就是用C#winform简单的两个用户进行聊天,类似于QQ那种单独聊天,越简单越好,希望能提供代码,感激不尽. 撸主,你要仿qq做即使通信,通信这块遇到瓶颈了

两个事件要用到同一个实例化的对象,怎么做?

问题描述 刚学C#,问下,在Winform中,两个事件要用到同一个实例化的对象,怎么做?1.是否可以在form_load事件中实例化?2.如果在两个事件中分别进行实例化对象,那这两个对象是同一个吗? 解决方案 解决方案二:弄个全局变量就可以了解决方案三:你可以这样:classmytest{privertestclass=null;//需要用到的对象publicmytest(){testclass=newtestcllass();}privervoidmyevent(objectsender,ev

Winform开发框架之混合型框架的实现

我在之前一篇文章<Winform开发框架之框架演化>中,介绍了传统Winform开发框架.传统WCF开发框架.离线式WCF开发框架.混合式WCF开发框架,其中前面两种就是大家比较熟悉的框架了,后面的离线式WCF开发框架,我在<Winform开发之离线式WCF开发框架的实现介绍>一文中也做了阐述,离线式的WCF开发框架,可以看做为传统Winform开发框架+WCF同步模块而成,本文继续探讨这方面的框架设计和实现,重点介绍混合式WCF开发框架的设计思路及具体实现. Winform开发框

Database2Sharp之混合型Winform框架代码生成

本人一直致力于Winform开发框架的研究和使用,有时候项目要求是传统Winform的,直接访问数据库进行获取数据:有的时候项目要求WCF框架,以分布式访问WCF服务获取数据的,虽然在Winform和WCF框架,都有特定的应用场景和开发思路,但是希望把这两种传统式的框架,加以抽象和提炼,形成目前所介绍的混合型框架,这样所有完成混合型框架改造的通用模块(或一个小业务模块),都能无缝式的实现集成使用.这种混合型框架的特点和优点都非常明显,为我最终实现,一个框架,多个应用的开发平台集成方案迈出坚实的一