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

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 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 ^_^ 谢谢……

附,本课程源码下载

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