设计时支持:如何获取环境数据
2007-08-13 17:31
246 查看
目前的软件,对于人机交互得要求越来越高,微软在设计器中提供的控件已经无法满足日常开发的需要。为了应对这种局面,通常的做法是购买第三方或者自己开发。此处我们不谈论这两种做法的优点和缺点。但是在日常开发中,我们肯定离不开开发一些小控件,如果具备微软常用空间的特性和功能,以便降低使用者的洪沟?更好的集成到Visual Studio 中?
例如下图所示
拖放一个Button到窗体上,鼠标右键点击,我们会看到“重置”菜单,当用户输入了某个值以后,发现这不是他想要的,这是可以使用重值功能恢复到初始状态。这是AmbientValueAttribute的功能表现。
MSDN上有句话介绍了此特性标记的主要功能和使用方式:
“通常,可视化设计器使用 AmbientValueAttribute 属性来决定为属性永久保存的值。这通常是一个使属性从另一个源获取其值的值。周围值的一个示例是 Color.Empty 作为 BackColor 属性的周围值。如果您在窗体上具有一个控件,并且该控件的 BackColor 属性被设置为与该窗体的 BackColor 属性不同的颜色,则您可以通过将该控件的 BackColor 设置为 Color.Empty 来将该控件的 BackColor 属性重置为该窗体的颜色。”
1 [AmbientValue("NoName")]
2 public string Title {
3 get {
4 if (_title == "NoName" && Parent != null) {
5 Form f = Parent as Form;
6 _title = f.Text;
7 }
8 return _title;
9 }
10 set { _title = value; }
11 }
以上代码当重置操作时,控件将获得承载它的窗体容器,使用Form.Text的值填充Title属性。它的使用并不复杂,既可以标识在类上也可以标识属性上。小小的功能,可以改善用户体验,何乐而不为呢?
例如下图所示
拖放一个Button到窗体上,鼠标右键点击,我们会看到“重置”菜单,当用户输入了某个值以后,发现这不是他想要的,这是可以使用重值功能恢复到初始状态。这是AmbientValueAttribute的功能表现。
MSDN上有句话介绍了此特性标记的主要功能和使用方式:
“通常,可视化设计器使用 AmbientValueAttribute 属性来决定为属性永久保存的值。这通常是一个使属性从另一个源获取其值的值。周围值的一个示例是 Color.Empty 作为 BackColor 属性的周围值。如果您在窗体上具有一个控件,并且该控件的 BackColor 属性被设置为与该窗体的 BackColor 属性不同的颜色,则您可以通过将该控件的 BackColor 设置为 Color.Empty 来将该控件的 BackColor 属性重置为该窗体的颜色。”
1 [AmbientValue("NoName")]
2 public string Title {
3 get {
4 if (_title == "NoName" && Parent != null) {
5 Form f = Parent as Form;
6 _title = f.Text;
7 }
8 return _title;
9 }
10 set { _title = value; }
11 }
以上代码当重置操作时,控件将获得承载它的窗体容器,使用Form.Text的值填充Title属性。它的使用并不复杂,既可以标识在类上也可以标识属性上。小小的功能,可以改善用户体验,何乐而不为呢?
相关文章推荐
- VS2010环境下C#如何建立与SQLServer的连接并获取数据
- 大数据环境下该如何优雅地设计数据分层
- 【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS
- NetBox环境下ajax用get获取数据,中文乱码的问题解决:对象不支持此属性或方法: 'Response.CharSet'
- (原) ODP.NET 演示如何从DataSet中获取LOB数据 附:.NET 环境下连接Oracle数据库
- 如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS
- 大数据环境下该如何优雅地设计数据分层
- 大数据环境下该如何优雅地设计数据分层
- 如何设计一个数据库中间件(支持百亿级别数据存储)
- 大数据环境下该如何优雅地设计数据分层
- 如何设计一个数据库中间件(支持百亿级别数据存储)
- 大数据环境下该如何优雅地设计数据分层
- 大数据环境下该如何优雅地设计数据分层
- 大数据环境下该如何优雅地设计数据分层
- DBGridEH 中如何获取合计列的数据信息
- 如何让复合控件的子控件获得设计时支持
- [转]使用Oracle SQL Developer 17410 提示无法从套接字获取更多数据如何解决
- Windows Vista 性能分析:如何使用 xperf 获取精确的启动性能数据
- 如何在控制器获取数据库的数据并且在模板输出
- 问题:客户端从服务器分页获取列表,如何保证流量最少,且客户端和Server数据的一致性?