惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - Asidy

[转]禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项 - Asidy [转]SQL Server 2005备份集中的数据库备份与现有的数据库不同的解决方法 asp.net中向数据库中插入数据时如何获得当前插入行的主键? css中visibility与display的区别 一个比较纯洁的DIV+CSS下拉菜单 基于.NET平台的Windows编程实战系列课程导航及源码下载 一个用JS写的IP/时间/日期/email的验证函数 [转]同时安装MSSQL2000与MSSQL2005时所遇到的问题及解决方法小记 LINQ编程实战之TreeView动态绑定数据 一个老师的自责、道歉与思考 基于.NET平台的Windows编程实战(九)— 安装与部署 基于.NET平台的Windows编程实战(八)— 数据库管理及其他辅助功能的实现 基于.NET平台的Windows编程实战(七)—— 问卷统计功能的实现 基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 让别人说话 [翻译]在Windows窗体中如何使用透明图片和标签 基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写 基于.NET平台的Windows编程实战(三)—— 项目的创建及主界面的设计 FileStream类/StreamWriter类/StreamReader的使用
基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现
Asidy · 2009-06-03 · via 博客园 - Asidy

大家好!今天我们来开始学习本系列课程的第五课,本课将带领大家一起动手来实现问卷添加、问卷浏览、问卷编辑以及问卷管理等功能。

首先,为了使我们的界面更加便于操作及布局,我们引入第三开源控件DockPanel[当然也可以不引入控件而直接进行开发],你可以从这里:DockPanel控件 下载其编译好的DLL文件,也可以从这里:http://sourceforge.net/projects/dockpanelsuite 进行下载。关于DockPanel控件的相关资料大家可以去http://sourceforge.net/projects/dockpanelsuite 或上网查找相关资料进行了解,本项目系统只是用其来进行界面布局方面的操作,至于其它方面的功能不作研究讨论,有兴趣的朋友可以去http://sourceforge.net/projects/dockpanelsuite 上下载其源码来进行研究。

OK!下载了DockPanel控件后,我们将其(即WeifenLuo.WinFormsUI.Docking.dll文件)COPY到前面创建的QuestionnaireSystem项目中的bin文件夹中,并添加到项目的引用中去,方法如下:右击项目名称或右击“引用”-à“添加引用……”,在弹出的对话框中选择浏览选项卡,并找到刚才COPY到项目中的WeifenLuo.WinFormsUI.Docking.dll文件,点“确定”即可,如下图5-1所示:

图5-1

DockPanel引入成功后,我们便可以将其做为放到工具箱中像其它控件一样使用了,下面我们将其添加到工具箱:在左边工具箱下面的空白处右击-à“选择项”-à在弹出的对话框中点击“浏览”并找到COPY到项目中的WeifenLuo.WinFormsUI.Docking.dll并打开,之后如下图5-2所示,再点击“确定”,即可发现左边的工具箱下面多了个DockPanel控件,这表示添加成功了。

图5-2

打开之前我们创建的主窗口MainFrom,并把刚才添加到工具箱的DockPanel控件拉到其界面的空白处,将其Name属性设为dockPanel,并点击如下图5-3所示的“在父容器中停靠”,使其停靠到父容器中。

图5-3

好!打住!主窗口MainFrom的设置先到这里,后面我们再接着设置。

下面我们先来创建一个母窗口吧,以便之后各窗口继承。方法:右击项目名-à“添加”-àWindows窗体”,在弹出的对话框中进入“SurveryWin”,点“确定”即可,如下图5-4所示:

图5-4

并设置如下属性:

BackColorWhite

Icon:设置成项目文件夹Images中的logo.ico图片

Text:设为空,也可以不设

之后,往窗体中拉入一个ContextMenuStrip控件,将其Name设为” CMenuStrip”,并在其第一个子项目上输入“关闭”,如下图5-5所示:

图5-5

之后,在“关闭”上双击,进入代码编辑器,将其代码改写成如下所示:

Code

到这里,母窗口算是创建好了,下面就让我们分别来创建问卷添加、问卷编辑、预览问卷、问卷管理四个窗口,依次命名为SurveyAddSurveyModifySurveyPreviewSurveyManage,(创建方法同上面的母窗口的创建一样,在此以及以后的课程中将不再多说),并都使其继承于SurveyWin母窗口,继承的方法也与上面一样,将对应类后面继承的From改成SurveyWin即可,下面以SurveyAdd窗口为例进行讲解说明:

原来为:

public partial class SurveyAdd :From

现在改成:

public partial class SurveyAdd :SurveryWin

之后,往SurveyAdd窗口中拉入相应的控件,并设置成如下图5-6所示,具体的属性设置请下载下面的本课程源码进行查看:

图5-6

    其对应的代码改成如下所示:

Code

以上的代码在这里就不用再进行讲解了吧,上面的注释已经写的很清楚了^_^

至于其它三个窗口的设置,与上面的大同小异,就不一一列出来了,请大家自行下载下面的本课程源码进行对照设置吧。

创建好各窗口后,让我们再回到主窗口MainFrom中来进行相对应的关联设置吧!

先在MianFrom中引入DockPanel,如下所示:

using WeifenLuo.WinFormsUI.Docking;

再分别给主菜单 “问卷”下面的子选项以及工具栏中的:“添加问卷”与“问卷管理” 添加Click事件及ItemClick事件,并写一个用来查找已打开窗口的方法FindDocument(string text),用来判断哪些窗口已经打开了,哪些窗口还没有打开,具体代码如下所示:

Code

最后,我们修改一下主窗口的Load事件,以便启动系统时能打开问卷管理窗口,代码如下所示:

private void MainForm_Load(object sender, EventArgs e)
        
{  
                SurveyManage sm 
= new SurveyManage();
                sm.Show(
this.dockPanel); 
    }

 

OK!到这里本课程就算OVER ^_^ 谢谢……

附,本课程源码下载

建议大家多动手做做,不要只是看看源码而已 ^_^