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

推荐订阅源

博客园 - 【当耐特】
Help Net Security
Help Net Security
P
Proofpoint News Feed
J
Java Code Geeks
爱范儿
爱范儿
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
Google DeepMind News
Google DeepMind News
H
Help Net Security
G
Google Developers Blog
Jina AI
Jina AI
Vercel News
Vercel News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
Lohrmann on Cybersecurity
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
Security Archives - TechRepublic
Security Archives - TechRepublic
阮一峰的网络日志
阮一峰的网络日志
N
News and Events Feed by Topic
GbyAI
GbyAI
B
Blog
O
OpenAI News
博客园_首页
Cisco Talos Blog
Cisco Talos Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
Webroot Blog
Webroot Blog
Simon Willison's Weblog
Simon Willison's Weblog
Y
Y Combinator Blog
C
Cisco Blogs
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
AI
AI
W
WeLiveSecurity
aimingoo的专栏
aimingoo的专栏
The Register - Security
The Register - Security
Project Zero
Project Zero
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale

博客园 - 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-08 · via 博客园 - Asidy

申明:本系列课程是专为新手们写来入门练习用的,目的是想通过一个完整的问卷调查管理系统案例来让新手们了解、加深或是熟悉项目的开发流程及
.NET平台上使用VS2005C# 进行Windows方面的编程;在整个课程的设计上,我尽量避开或是根本不讨论底层的以及性能优化等方面的东西,
故高手完全可以无视本系列课程。

    本课将带领大家一起来实现数据库导出与还原、窗口管理等辅助功能。这些功能并非本案例系统的主要功能,只是一些辅助上的功能,
故本课程的只是提取几个功能出来简单的讲解一下其实现的原理或方法,至于其设计的思路在这里就不讲了,似乎没有什么可讲的^_^
    
下面进入主题吧……

一、数据库导出与还原功能的实现
大家在一些系统里应该也看到过数据库导出与还原的功能,不知道大家在使用的时候有没有去想过其实现的原理?其实,其实现的原理与逻辑是非常之简单的:
导出时,找到其数据库存放的位置及其名称,之后用一个File.Copy()方法将其COPY到新的位置即可;
而还原,正好是相反,即从新的位置COPY到当前系统数据库的位置,
并覆盖掉当前系统的数据库;其实现的代码如下所示:

Code

二、窗口管理功能的实现
看过前面第五课的朋友们,应该知道,我们在本案例系统中使用了一个叫作DockPanel的第三方开源控件,
在这里我们就来简单的说说它的一些功能的实现方法吧。
首先,我们来看看系统左边的“系统管理”工具箱的实现吧。
先新建一个如下图8-1所示的名为 ToolFrom”的新窗体[至于相关功能的实现请自行下载下面的本课程源码进行查看,在这里就不讲了]

图8-1
那么,建好之后,如何让其如下图8-2所示浮动在主窗口的左边呢?

图8-2
在这里,我们就需要用到第三方开源控件DockPanelDockTo()方法了,其实现的原理的是这样的:
dockPanel(通过前面课程的学习,我们应该知道所有的打开子窗口,如问卷管理,都是放在dockPanel容器中的)中依次查找所有打开的子窗口,
如果找到所需的窗口则将其
dockPanel中停靠的位置和方式设置成DockStyle.Left,即使其靠左边停靠,其实现的代码如下所示:

Code


其次,我们再来看看关闭其他窗口的实现的原理,先来看代码:

Code


从上面的代码中,我们可以看出其实现的原理是这样的:在dockPanel中依次查找所有的打开的子窗口,
如果查找到的子窗口不是当前打开的正处于活动状态的子窗口,则将其关闭掉。
最后,我们来看看任务栏图标的创建方法。
大家都知道QQ运行时,在桌面右下侧的任务栏中会有一个QQ的图标,那么这个图标是如何制作出来的呢?
其实在VS2005的开发中很容易实现,我们只要将工具栏中的notifyIcon控件拖动到主窗口“MainFrom”中,
并给其Icon属性选择一个我们喜欢的ico图片即可!呵呵,是不是很简单呀^_^

OK,本课程就先到这里,如有其它不清楚或疑惑的地方,请在下面留言说明,我将尽全力给予解答,希望能给大家带来一点帮助!
谢谢的大家支持……

附:本课程源码下载