例如,我想我所有的形式,以具有相同的Icon
和StartPosition
。不过,我也需要能够在各种形式如何,你通常会,拖放控件定义的东西,等在Windows窗体(.Net 4)应用程序中,如何为所有窗体定义基本窗体样式?
这可能吗?
例如,我想我所有的形式,以具有相同的Icon
和StartPosition
。不过,我也需要能够在各种形式如何,你通常会,拖放控件定义的东西,等在Windows窗体(.Net 4)应用程序中,如何为所有窗体定义基本窗体样式?
这可能吗?
创建一个表单,并设置图标中StartPosition属性你想要他们的方式。编译。这将是您的基本形式。现在使用Project + Add New Item,Windows窗体节点并选择Inherited Form项目模板。 IDE将提示您选择基本表单。
只需创建你自己的基本Form
类:
class FormBase : Form
{
public FormBase()
{
Icon = SomeIcon;
StartPosition = StartPosition.Whatever;
}
}
你可以有一个静态图标的位置,用静态构造函数初始化它,然后让其中可以使用初始化实例的图标和Position属性构造静态图标和位置: Fx。
class Foo : Form {
static Bitmap sIcon { get; private set; }
static Point sPosition { get; private set; }
static Foo() {
sIcon = /* Load from external source */
sPosition = new Point(x, y); //Insert x and y
}
public Foo()
: base() {
Icon = Foo.sIcon;
Position = Foo.sPosition;
}
}
然后在创建表单时使用“Foo”作为基础表单。
我没有检查的参考“图标”和“位置”,所以我不知道,如果他们存在,但你的想法:)
是的,但形成产业牢记在设计师的支持方面有些脆弱。只要记住,需要是子窗体访问的任何控件必须有自己的修饰符改为Protected
(Internal
将在同一装配形式的工作,但也将暴露控制在同一组件中的任何类; Public
应避免)。这包括诸如板或其他容器,你可能会希望,如果你的基本形式有定义一些基本的显示元素的使用,所以你要包含子窗体的特定区域。
对此,您只需建立基本形式,你会任何其他形式的,那么当你去创造新的形式,选择“继承的窗体”,而不是“表”,然后选择您的基本形式。
Antoher的路要走,在这里你将所有的参数,使扩展方法:
public static class FormExtentsions
{
public static void SetDefault(this Form form)
{
form.Icon = new Icon("path");
form.StartPosition = FormStartPosition.CenterScreen;
}
}
使用这样的:
public partial class Form1 : Form
{
public Form1()
{
// Put it here if you want to be able to override everything
this.SetDefault();
InitializeComponent();
// Put it here if you want the defualt to override "local" settings
this.SetDefault();
}
}