是否可以让设计器运行一个方法

Is it possible to make the designer run a method

设置是这样的:

假设您需要一些设计器不支持的窗体控件,并且您需要在 运行 时设置这些控件的高度和宽度。但是,您无法编译项目,因为您缺少项目所需的一些依赖项。这些依赖项需要 运行 的开发人员许可,而且非常昂贵,因此只有一套,你不是拥有它们的人。

导致这个问题:

你怎么能 运行 一个简单地将你的东西添加到设计器程序中的方法。该方法不是动态的,只是用来设置用户控件。

额外信息:

有问题的控件是一个支持向其添加控件的网格视图,我想查看向其添加控件的结果,以便我可以正确调整列的大小,而无需制作额外的项目来获得正确的大小.我可以修改网格视图。

欢迎使用 C# 或 VB 回答。我两个都用。这个有问题的项目在 VB 中,但非常欢迎了解 C# 中的方法。

此问题的合适解决方法是通过属性。我所做的是向该控件添加一个 属性 以获取控件的 Action,而在调用该控件的表单中我添加了一个静态 属性 即 returns 所述方法,如一个动作。

C#

自定义控件

public Action<myControl> SetUp
{
    get { return x => { }; }
    set { value(this); }
}

表格

public static Action<myControl> SetUp
{
    get 
    {
       return x => 
          {
               /* Do Stuff */
          }; 
    }
}

在窗体的设计器中

this.myControl1.SetUp = myForm.SetUp

VB

自定义控件

Public Property SetUp() As Action(Of myControl)
{
    Get 
        Return
             Sub(x)
             End Sub
    End Get
    Set 
        value(Me)
    End Set
End Property

表格

Public Shared Property Setup() As Action(of myControl)
    Get 
       return
          Sub(x)
               'Do Stuff
          End Sub
    End Get
End Property

在窗体的设计器中

Me.myControl1.SetUp = myForm.SetUp