如何在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 中的代码将在继承表单的设计模式中 运行。因此,如果您想 运行 表单设计模式中的代码,您可以创建一个基本表单并从该表单继承。然后把你的代码放在基本形式的方法中。
例子
- 添加新项目并选择一个
Form
并将名称设置为 MyBaseForm
。
在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
- 构建项目。
- 添加新项目并选择
InheritedForm
并选择 MyBaseForm
作为基本形式。
我想要 在设计器中打开 winform 时执行代码。特别是,我希望设计人员自动将工作窗体的大小调整到屏幕的一定百分比。类似这样:
pForm.Size = New Drawing.Size(MyScreen.WorkingArea.Width * 0.75, MyScreen.WorkingArea.Height * 0.75)
除了手动修改 initializecomponant 例程之外,必须有一种方法......无论如何这将是一个坏主意,我不想将每个祝福形式的大小 属性 设置为静态值
感谢您的帮助(VB.NET)
作为 运行 表单设计模式代码的一个选项,您可以将代码放在表单的基础 class 中。
您放在表单基础 class 中的代码将在继承表单的设计模式中 运行。因此,如果您想 运行 表单设计模式中的代码,您可以创建一个基本表单并从该表单继承。然后把你的代码放在基本形式的方法中。
例子
- 添加新项目并选择一个
Form
并将名称设置为MyBaseForm
。 在
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
- 构建项目。
- 添加新项目并选择
InheritedForm
并选择MyBaseForm
作为基本形式。