前面几节我们攻克了一个小的技术难点,接下来我们来实现右键菜单与管理界面的数据联动。
右键菜单实质上是在主界面MainForm上发生的,分类数据的录入是在CategoryManagerForm窗体上产生的,现在需要在新建时把分类数据从CategoryManagerForm传递到MainForm中,修改时先把原分类数据从CategoryManagerForm传递到MainForm,修改完毕后再从MainForm传递到CategoryManagerForm中。
这种情况可以归纳为实现窗体间的数据传递,在编程中经常会用到。实现的方法有很多种,比如:全局变量、类变量、代理、消息机制等等都可以,当然最常用的还是使用类变量,也最适合初学者。
代码非常简单,就是在CategoryManagerForm类中再声明一个Model.Category的类变量,确认时将所有控件的值保存到这个变量中,然后在CategoryManagerForm实例中使用。
如下图代码:
打开CategoryManagerForm.cs文件,转到代码视图中的btnOK_Click函数。编写代码如下:
在MainForm.cs文件中,右键新建菜单部分,把模拟数据注释掉,替换成红框内代码就完成了新建菜单从分类管理界面到创建树控件节点的过程。
新建节点后,模拟数据库已生成了数据编号Id,以便后面测试。
演示效果如下:
修改过程与新建类似,但是也有些不同:
一、在弹出CategoryManagerForm之前,需要将树控件的值设置赋值给CatetoryData;
二、CategoryManagerForm初始化代码需要对控件值进行赋值;
三、修改完毕后如果更改了父节点,则还需要做删除原节点,添加新节点的操作。
CategoryManagerForm_Load中增加代码:
右键修改菜单代码:
最终演示效果如下:
其实分类层次代码实现以后,对这些控件的操作基本上就没什么难的了。所以上面的代码我就不再细说了,有疑问的同学可以在评论区提问。
至此,分类管理的界面工作我们就基本完成了,第三步由于没有数据库,缺失真实的分类数据,代码暂时无法得到验证。所以,引入数据库,已经成为了我们现在开发面临最大的障碍了,下一步我们就进军数据库,实现真实的数据联动。
这节内容不多,顺道说下数据库选型的思路:C#几乎可以支持市面上所有主流的数据库,所以数据库选型语言匹配方面可以不去考虑,主要从业务上看更适合哪个。
首先我们做第一版的私人日记是单机版的,对单机用户来说,每天写1篇文章一年是365篇,10年才3650篇;每天写10篇文章,10年还不到4万篇,数据量可以说是相对少,SqlLite完全够用。
另外,如果是用SqlServer、MySQL这种级别的数据库,需要额外安装和配置数据库,为了这么一个小软件去做这些,对用户来说是很难接受的。
最后,SqlLite是跨平台的,主流操作系统都支持,那么我们还有什么理由不使用它呢?
至于如何使用,我们下节继续。
----------------------------------------------------
本教程尽量保证2天一更,项目源码已作为开源项目加入到Git,代码内容会随教程实时更新,大家有兴趣的话可以关注我,以获得最及时的更新。私信:私人日记 可以来获取Git的链接。
C#基本语法大家在头条搜索“菜鸟c#”,个人感觉这个网站还可以。
大家阅读过程中有哪些看不懂或未尽兴的地方,可以在评论区留言,我会先记下来在后续的教程中找机会再说。
教程有帮助的话请大家帮忙关注、转发、扩散,能不能开专栏还需要你们的支持!
页面更新:2024-06-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号