结合Control.FirefoxDialog控件,构造优秀的参数配置管理模块
在前面一篇随笔《WinForm界面开发之模块化分合》中,说到了参数配置管理模块内容,内容摘录如下:
====================================
参数配置模块
在程序中,一般应用就是通过代码把相关的内容进行转义保存或者解析,以便呈现给用户更好的数据展示效果,这个模块比较通用,可分可合。
另外一个也比较常用的就是参数的配置管理模块,一般如果参数比较少,直接使用.NET的配置保存功能即可,如下图所示。
但这种方式只能保存比较少的内容,对于比较复杂的配置,一般很少采用这种模式存放程序的参数信息,这种方式存储的参数,如果不是放到一个独立的文件中,还存在一个不同步的现象。
其实我们还是可以把参数的配置功能作为一个独立的模块进行处理,我的程序就是经常这么干的,而且由于是相对比较独立,并在设计时候就支持参数的编辑及展示功能,因此效率大大提高,对使用用户来说,由于修改界面比较统一,而且参数的说明等很丰富,因此用户修改系统的配置参数友好性大大增强,界面效果如下所示:
使用用户看到的参数配置界面效果:
=========================================================
该参数配置模块在设计时刻和运行时刻都提供管理界面,非常方便参数的定义以及管理,参数一旦定义后,就是强类型的属性类型,也非常方便在代码中进行引用或者修改。
而另一方面,Control.FirefoxDialog控件却提供了很好的参数管理界面效果,比前面说到的参数配置管理模块界面更加友好,FirefoxDialog控件的界面效果如下所示:
该控件的Codeproject地址是(http://www.codeproject.com/KB/miscctrl/ControlFirefoxDialog.aspx?msg=1856449)
因此我们可以结合两者的特点,对参数配置管理模块的功能进行整合,界面采用 FirefoxDialog控件显示,而参数的获取或者设置则采用前面介绍的强类型参数配置管理模块,这样可以很好的利用各自的特点,重新构造出一个优秀的参数配置管理功能模块。整合后在我的新软件,绿苗帮电脑监控软件中的配置管理界面,最终的界面效果如下所示:
这个FireFoxDialog的参数配置界面,其实是有一个主窗体界面和几个Page类组成的,如主窗体的加载界面代码如下:
{
public FrmSettings()
{
InitializeComponent();
}
private void FrmSettings_Load(object sender, EventArgs e)
{
this.firefoxDialog1.ImageList = this.imageList1;
this.firefoxDialog1.AddPage("参数设置", new PageSetting());
this.firefoxDialog1.AddPage("程序控制", new PageControl());
this.firefoxDialog1.Init();
}
}
而对于每一个Page类,需要实现初始化控件以及“应用”的功能模块代码,如下面的实现所示:
{
SystemConfig.Default.Load();
#region 采集间隔时间
string defaultInterval = "00:00:30";
string intervalString = SystemConfig.Default.CaptureInterval;
if (string.IsNullOrEmpty(intervalString))
{
intervalString = defaultInterval;
}
string[] timeArray = intervalString.Split(':');
this.txtHour.Value = Convert.ToInt32(timeArray[0]);
this.txtMinute.Value = Convert.ToInt32(timeArray[1]);
this.txtSecond.Value = Convert.ToInt32(timeArray[2]);
#endregion
if (!string.IsNullOrEmpty(SystemConfig.Default.ImageFormat))
{
this.ddlImageFormat.Text = SystemConfig.Default.ImageFormat;
}
else
{
this.ddlImageFormat.SelectedIndex = 0;
}
this.txtExtension.Text = SystemConfig.Default.ImageFileExtension;
this.txtSavePath.Text = SystemConfig.Default.PictureSavePath;
}
public override void OnApply()
{
try
{
string timeSpan = string.Format("{0:D2}:{1:D2}:{2:D2}",
Convert.ToInt32(this.txtHour.Value), Convert.ToInt32(this.txtMinute.Value), Convert.ToInt32(this.txtSecond.Value));
SystemConfig.Default.CaptureInterval = timeSpan;
SystemConfig.Default.ImageFileExtension = this.txtExtension.Text.Trim('.');
SystemConfig.Default.ImageFormat = this.ddlImageFormat.Text;
SystemConfig.Default.PictureSavePath = this.txtSavePath.Text;
SystemConfig.Default.Save();
}
catch (Exception ex)
{
LogHelper.Error(ex);
MessageUtil.ShowError(ex.Message);
}
}
而其中代码中的“SystemConfig.Default” 调用的操作是强类型的,编写代码的时候,有相关的说明,非常易于操作,不会出现混淆意思的说明,比直接操作XML类或者其他封装XML调用的辅助类方便不少,而且也具有设计时刻对参数项的定义以及修改界面的支持。该代码调用就是采用了原有的参数配置管理类,实现数据的获取或者修改的,这样把他们两者的特点都发挥出来,实现了更好的参数配置管理,根据具有可定制性和可扩展性。
结合Control.FirefoxDialog控件,构造优秀的参数配置管理模块相关推荐
- 第十一篇: Ajax Control Toolkit 控件包--下载与安装
Ajax Control Toolkit 控件包 可以是说 == 超炫动态效果 !! 1.下载: 下载地址:http://www.codeplex.com/AtlasControlToolkit/Re ...
- AJAX Control Toolkit 控件学习(转自csdn山巅)
AJAX Control Toolkit 控件学习 2006-1-16 ToggleButton 关联ASP.NET CheckBox控件 RoundedCorder 造就圆角框 PasswordSt ...
- ajax control toolkit vs2013,如何将Ajax Control Toolkit控件安装到Visual Studio 2005工具箱
摘要:如何将 Ajax Control Toolkit 控件安装到 Visual Studio 2005 工具箱 How to Install Ajax Control Toolkit for Vis ...
- abap 在table control(表控件) 实现查找功能
我们都知道ALV控件已经集成了查找功能 ,这对于在海量数据中查找某条数据是非常方便的,而 table control (表控件)没有提供这样的功能,那只能通过手工的方式在屏幕添加一个这样的功能,方便对 ...
- Hot Key Control快捷键控件
hot key control用法: A "hot key control" is a window that enables the user to create a hot k ...
- UI⑥Control族控件TextBox
Object->DispatcherObject->DependencyObject->Visual->UIElement->FrameworkElement->C ...
- ASP.NET画图控件 Chart Control 免费控件
.NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用,一直没有玩玩,闲来无事,简单研究了下,感觉功能真的很强大,基本上可以满足各种图表的应用,感觉这么好用的东 ...
- Spin Control (上下控件)
上下控件是Windows中最常用的控件之一.它只不过是一对箭头,用户可单击它来增加或减少控件的设定值.通常,紧靠着上下控件有一个编辑控件,称为伙 伴编辑控件或伙伴控件,用于显示用户输出的值.上下控件在 ...
- MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...
- UI⑥Control族控件RichTextBox
Object->DispatcherObject->DependencyObject->Visual->UIElement->FrameworkElement->C ...
最新文章
- asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
- [置顶] 某大型银行深化系统技术方案之二十:代码结构
- Dsure-HTML5网站前端开发框架,网页设计师福利
- 三星在研发VR一体机?眼动追踪公司曝出原型机
- Python练习3-XML-RPC实现简单的P2P文件共享
- linux的同步与互斥
- ArrayList与LinkedList的比较
- .NET 指南:转换操作符
- java中开根号求三角形_Java编程 如何计算三角形的内切圆半径?
- datetime对应的java类型_MySQL数据类型笔记
- vmci.sys版本不正确_王者荣耀:当前版本辅助的正确玩法思路,别再被骂,也别再梦游了...
- JSP中鼠标禁用代码
- Linux配置虚拟主机后,只能访问到主页怎么办?
- JAVA内存释放机制
- codeforces-constructive algorithms(构造算法.)
- android View使用shape作为背景不能指定单边圆角的xml
- HTML5七夕情人节表白网页制作【流星动画3D相册】HTML+CSS+JavaScript
- VMware ThinApp应用程序虚拟化工具
- 适合平板用的Android版本,安卓平板专享 推荐五款Pad版应用浏览器
- 【Quarkus】像子弹一样飞的启动速度之入门案例