窗体应用界面开发笔记

本文记录了窗体应用中与NumericUpDown关联的TrackBar实现小数支持,动态生成布局的注意事项,MySQL数据库存储为Excel的细节,操作Excel后的进程清理,以及在确保兼容性的前提下使用03版Excel进行导入/导出数据的方法。在遇到主键冲突时,通过INSERT IGNORE INTO解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.让和NumericUpDown关联的TrackBar支持小数

       先声明这里的关联并没有做任何的数据绑定,只是写了一个响应事件。主要思路就是突破思维定势,假设NumericUpDown(简称N)的范围是0.0~10.0,那么我们可以把TrackBar(简称T)的范围设置为0~100,T更新的value是N的value的十倍,而N更新的value则是T的十分之一(注意均需进行一步强制转换)。

2.动态生成布局注意事项

       注意某些控件可能会被用户重复点击,需要判断避免重复生成控件。

3.将数据库(MySQL)存储为Excel时的各种事项

xlBook.SaveCopyAs(file.FileName);

        使用这句话进行存储的时候,括号里的参数是完整路径名,不然微软爸爸保存时会告诉你打不开这个文件。

4.操作完Excel可行的杀进程操作

xlBook.Close();
xlBook = null;
xlApp.Quit();
xlApp = null;
GC.Collect();

求生欲极强的代码 ,然而以上并没有卵用,后台Excel的进程还摆在那里,于是请参考这位大佬:

https://blog.youkuaiyun.com/spw55381155/article/details/79891108

简单有效!

5.Excel均用03版本导入/导出

        要知道OLEDB这个玩意还是挺蛋疼的,除了4.0我的电脑上都会提示 “提供程序未在本地计算机上注册” 。查了下如果要求能读取xlsx的话必须要求用户安装Office(而且我安装了但没装AccessDatabaseEngine也不行),考虑到软件要尽量保持独立性,而且数据存储对于Excel的版本也没有要求,于是就要读写都要用xls完成。

读取没问题,关键在于写入。因为上面SaveCopyAS()就会自动写成xlsx(我电脑安装的16版Office),导致OLEDB4.0无法读取,那么问题就集中于怎么“另存为”.xls。于是请参考这位大佬:

https://blog.youkuaiyun.com/simpleshao/article/details/83587226

//2011年4月6日12:22:07
//Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8:Excel97-2003格式
//Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel12:Excel2007格式
workBook.SaveAs(xlsFileDir + strFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing,
                        Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, 
                        Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing);

6.导入数据表时的注意事项

        用户有可能导入相同的表,或者新表与旧表含有相同的数据,对于主键且设置了自增条件下就会报错“duplicate entry for key primary”,解决办法很简单,将 INSERT INTO 改为 INSERT IGNORE INTO 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值