使用Component编程是一项值得推崇的技术,它既具有可视化的界面编程模式,又不向UserControl那样体积庞大。但是,熟悉UserControl的朋友们都知道,在UserControl类中有一个FindForm()函数,返回UserControl所在的窗体的引用,这将大大方便我们对窗体的控制----尽管这可能有些越俎代庖的味道,但有时我们就需要这种控制能力。
    但是,在Component并没有提供这样的函数,你可以使用其它的一些技巧来取得Component所在的窗体的引用,比如在Component的构造函数中使用Application.AddMessageFilter(this),然后取出由窗体发来的消息的句柄,就可以得到窗体的引用,缺点是不能设计时刻就获得窗体引用;比如可以给Component加一个StyleForm的属性,然后你就可以在设计器中用鼠标选择一个,缺点是你必须手动来选择。
     今天,花了半天的时间,终于设计出了克服了以上两个缺点的方案,代码如下:
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能using System;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.ComponentModel;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.Collections.Generic;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.Diagnostics;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.Text;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.ComponentModel.Design;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
using System.Windows.Forms;
如何在组件(component中)模拟用户控件(UserControl)中FindForm()的功能
namespace FindFormSimulation

相关文章:

  • 2021-12-24
  • 2021-12-31
  • 2022-12-23
  • 2021-12-09
  • 2022-01-03
  • 2022-02-24
  • 2021-06-11
猜你喜欢
  • 2022-02-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2022-01-16
相关资源
相似解决方案