如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
2006-04-19 23:55
465 查看
使用Component编程是一项值得推崇的技术,它既具有可视化的界面编程模式,又不向UserControl那样体积庞大。但是,熟悉UserControl的朋友们都知道,在UserControl类中有一个FindForm()函数,返回UserControl所在的窗体的引用,这将大大方便我们对窗体的控制----尽管这可能有些越俎代庖的味道,但有时我们就需要这种控制能力。
但是,在Component并没有提供这样的函数,你可以使用其它的一些技巧来取得Component所在的窗体的引用,比如在Component的构造函数中使用Application.AddMessageFilter(this),然后取出由窗体发来的消息的句柄,就可以得到窗体的引用,缺点是不能设计时刻就获得窗体引用;比如可以给Component加一个StyleForm的属性,然后你就可以在设计器中用鼠标选择一个,缺点是你必须手动来选择。
今天,花了半天的时间,终于设计出了克服了以上两个缺点的方案,代码如下:
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.ComponentModel.Design;
using System.Windows.Forms;
namespace FindFormSimulation
但是,在Component并没有提供这样的函数,你可以使用其它的一些技巧来取得Component所在的窗体的引用,比如在Component的构造函数中使用Application.AddMessageFilter(this),然后取出由窗体发来的消息的句柄,就可以得到窗体的引用,缺点是不能设计时刻就获得窗体引用;比如可以给Component加一个StyleForm的属性,然后你就可以在设计器中用鼠标选择一个,缺点是你必须手动来选择。
今天,花了半天的时间,终于设计出了克服了以上两个缺点的方案,代码如下:
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.ComponentModel.Design;
using System.Windows.Forms;
namespace FindFormSimulation
相关文章推荐
- 如何在组件(Component中)模拟用户控件(UserControl)中FindForm()?
- MVC如何将用户控件(分部视图,RenderPartial,ViewUserControl)内容转换为字符串并输出
- Angular4中关于component组件如何获取前端页面用户输入的值
- 用户控件包含一个搜索功能,但是在调用页面中按回车时无法直接提交这个表单,只有鼠标点击才提交,如何解决?
- 如何调用用户控件(UserControl)的方法 .
- Asp.net 2.0 中如何调用用户控件(UserControl)的相关方法或属性/如何传参等
- 如何获取用户手机当前是否启动了android机的模拟位置功能
- 如何在一个用户控件内操作另外一个用户控件的中的控件?
- 如何返回弹出窗口的值到父窗口中的用户控件中的文本框中?
- [原创]用户控件中使用Js,如何在客户端引用用户控件中某个控件的ID
- 葡萄城ComponentOne全功能开发控件套包发布2017V3 新版本
- [MOSS开发]:如何使用用户控件
- 如何使用ssh框架实现用户的注销功能
- 如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能
- Flex中如何通过设置restrict属性在TextInput控件中限制用户可以输入的字符串的例子
- C# 用户自定义UserControl控件使用
- 如何作证书并注册控件,并实现打包下载注册的功能(接前两片文章)(3)
- 技巧和诀窍:如何在Web.config中注册用户控件和自定义控件
- 在DNN模块中如何调用DNN/Controls下的用户控件
- 如何在用户控件内得到包含这个用户控件的页面中的控件的值