如何在winforms的设计模式下执行代码

How to execute code in design mode for winforms

想要 在设计器中打开 winform 时执行代码。特别是,我希望设计人员自动将工作窗体的大小调整到屏幕的一定百分比。类似这样:

pForm.Size = New Drawing.Size(MyScreen.WorkingArea.Width * 0.75, MyScreen.WorkingArea.Height * 0.75)

除了手动修改 initializecomponant 例程之外,必须有一种方法......无论如何这将是一个坏主意,我不想将每个祝福形式的大小 属性 设置为静态值

感谢您的帮助(VB.NET)

作为 运行 表单设计模式代码的一个选项,您可以将代码放在表单的基础 class 中。

您放在表单基础 class 中的代码将在继承表单的设计模式中 运行。因此,如果您想 运行 表单设计模式中的代码,您可以创建一个基本表单并从该表单继承。然后把你的代码放在基本形式的方法中。

例子

  1. 添加新项目并选择一个 Form 并将名称设置为 MyBaseForm
  2. MyBaseForm.vb中粘贴以下代码:

    Imports System.ComponentModel
    Public Class MyBaseForm
        Protected Overrides Sub OnSizeChanged(e As EventArgs)
            If DesignMode Then
                Dim s = New Size(My.Computer.Screen.WorkingArea.Width * 0.75,
                                 My.Computer.Screen.WorkingArea.Height * 0.75)
                TypeDescriptor.GetProperties(Me)("Size").SetValue(Me, s)
            End If
            MyBase.OnSizeChanged(e)
        End Sub
    End Class
    
  3. 构建项目。
  4. 添加新项目并选择 InheritedForm 并选择 MyBaseForm 作为基本形式。