露雨城市-南京.NET爱好者
主要讨论的为C#,ASP.NET,Sql Server2005,包括VSTS 2005的相关工具和功能。
posts - 32,  comments - 128,  trackbacks - 11

在上一篇文章中,我主要是讲了界面的设置和一些初步的操作。
文章见:http://luyu.cnblogs.com/archive/2005/11/25/284281.html

这篇文章我主要讲一些设计思路和新特性,以及未解决的问题等。
这个软件在界面设计完之后,仍然有10大问题需要解决,不过现在已经基本上完成,还差一些后期的资源压缩和加密没有做。

原来一直遇到一个困难让我头疼,就是我如何能在dataGridView的最后一行生成一个统计行,包括统计记录和分页功能等。后来上了CSDN问,也没有得到结果,被告之无法实现。我想通过重载DataGridItemCreate事件可能会解决,不过实在麻烦,而以性效率过低。于是一直偿试其他方法,后来才发现是我的思路太狭窄了,思想太僵硬了。非要使用dataGridView的行来做吗?不是可以自己设置一个多功能的控件吗,可以由多个label和textbox,linklabe等做成就行了啊。
想着想着,心里非常高兴,不过我看到VS2005中的DATA面板中,有一个叫bindingNavigator的控件,一拖上FORM看,这不真是我要的控件吗?我想可能它是可以直接连接上数据源实现分页的。不过我不喜欢这种方法,我喜欢用datareader来读取数据,想就拿它的外观和事件来用用也不错啊。结果一试还真是好。
下面是我测试用的,一个8条记录,每页定义3条记录,一个是3页,可以在最后的bindingNavigator文本域中看到。


当然点击标题就可以直接查看内容了,点击最后的删除按钮,可以删除当前的记录。不过这个功能我考虑以后要管理员登录后,才能显示啊,不然太危险了。 :)

实际上查看内容并不是所有的都很漂亮,像这个字体过大,就是因为没有应用到样式,当然这个比较好改啦,在提取图片时,我一样可以提取样式表,然后自动加到这个文档中来就可以了。 :)

上面就是软件的所有文件,除了“关于我们”,也就只有Form1.cs和InsertLib.cs两个窗口了。其中Form1是主窗口,我通过Program.cs实现了只让程序同时运行一个实例。以免浪费资源和数据不同步等。 代码如下:

1string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
2            if ((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0> 0)
3            {
4                MessageBox.Show("系统已经在运行中""警告", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Asterisk);
5            }

6            else
7                Application.Run(new MainForm());
非常简洁明了,是我引用了一个朋友的代码,高手。

同时我设计了一个函数库Data.cs,Image.cs,Text.cs,分别用来处理数据库,图片和文本。
其他的真的是非常的杂乱。我想一些架构设计高手能指点指点。
首页在窗体第一次Load时,我会加载主窗口左侧的listview(文章类型)和insertLib窗口中的类型(加入静态变量中,这样避免了数据库操作)。剩下的操作都不是什么难题了。

这个软件除了上面提到的一些问题外,还有一些功能要完善,比如在自适应窗口时,还有分页表格自适应问题要解决。
等软件release后,我会放出来给大家试用的。大家有什么好的建议也可以和我交流。
posted on 2005-12-02 12:45  露雨城市.NET2.0和Sql Server 2005开发研究  阅读(...)  评论(...编辑  收藏