HTML5技术

记录Winform开发过程中遇到的情况 - 神雕爱大侠(2)

字号+ 作者:H5之家 来源:H5之家 2017-03-18 10:03 我要评论( )

private void dataGridView2_RowPostPaint( object sender, DataGridViewRowPostPaintEventArgs e){Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,e.RowBounds.Location.Y,dataGridView1.RowHeaders

private void dataGridView2_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1.RowHeadersWidth - 4, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dataGridView2.RowHeadersDefaultCellStyle.Font, rectangle, dataGridView2.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); }

 

三、Winform中全局的异常捕获处理

  因为在程序里会出行一些异常,如用户的特殊输入,但是我有不想写大量try catch语句,所以我就找到了一种方法能够全局处理异常。找到winfrom的程序入口的文件Program.cs,然后注册捕获异常事件,进行处理 ,类似于ASP.NET中Global里的Application_Error

static class Program { 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { //处理UI线程异常 Application.ThreadException += Application_ThreadException; //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.Automatic); //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } 处理应用程序域内的未处理异常(非UI线程异常) CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { try { Exception ex = e.ExceptionObject as Exception; } catch { } } 处理应用程序的未处理异常(UI线程异常) Application_ThreadException(object sender, ThreadExceptionEventArgs e) { try { (e.Exception.Message.Contains() ||e.Exception.Message.Contains()) { MessageBox.Show(); } else { MessageBox.Show(); } } catch { } } }

View Code

在测试的时候刚开始遇到一些疑惑,用VS调试的时候,这段代码捕获到异常后,弹出了我设置的提示框,但是程序还是抛异常了,本以为代码写错了,但最后发现,这个不是错误。用bin文件夹下的exe文件测试就不会有问题了,打包后还是没问题了。

 

四、程序打包(非InstallShield方式)

  过了vs2010后,打包感觉好无语,操作步骤真是复杂,还非的下载InstallShield,因为是局域网,不是公网ip,在那个注册下载那个页面,国家地区那一列直接就不给机会选择,换种方式打包了。

 

 

 打包过程中还发现这种问题,也是搜了好久,这种解决办法是去掉项目属性中的签名,之后便能够发布成功。

 

 

 

至此,从项目创建到发布都过了一遍,感觉还是怪怪的,好像还有个地方可以优化,就是用多线程,防止页面假死,先这样吧,慢慢再优化。

项目发布到码云上,地址:    

 

 参考文章:1.Winform中的dataGridView添加自动编号 

      2.(C#)利用Aspose.Cells组件导入导出excel文件 

      3.winform 记录全局异常捕获

      4.WinForm多线程+委托防止界面假死

      5.CSKIN论坛

 

  

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 没有功能需求设计文档?对不起,拒绝开发! - CharlieChu

    没有功能需求设计文档?对不起,拒绝开发! - CharlieChu

    2017-03-16 13:04

  • Ionic2 开发笔记(1)ionic2 +angular2搭建 - 早上~得~喝粥

    Ionic2 开发笔记(1)ionic2 +angular2搭建 - 早上~得~喝粥

    2017-03-13 16:00

  • 使用Visual Studio 2017作为Linux C++开发工具 - 星夜落尘

    使用Visual Studio 2017作为Linux C++开发工具 - 星夜落尘

    2017-03-12 14:01

  • 推荐15个很优秀的跨平台的移动开发工具 - 梦想天空(山边小溪)

    推荐15个很优秀的跨平台的移动开发工具 - 梦想天空(山边小溪)

    2017-03-12 13:02

网友点评
t