首页 > 解决方案 > 从 UserControls 访问表单属性

问题描述


有没有办法从用户控件中的按钮访问主窗体属性,如(不透明度、最顶部、背景色等)

我试过这个但没有用

private void button1_Click(object sender, EventArgs e)
    {
        Form1 frm1 = new Form1();
        frm1.TopMost = true;
        frm1.Opacity = 50 %;
    }

标签: visual-studiowinformsuser-controls

解决方案


您可以使用Application.OpenForm数组来访问任何打开的表单:

Application.OpenForms[0].Text = "Hello";

或者,更好的方法:

public static T GetForm<T>()
{
    foreach(object f in Application.OpenForms)
    {
        if (f is T) return (T) f;
    }
    return default(T);
}

使用此方法访问 Form1 的示例:

GetForm<Form1>().Text = "Hello";

推荐阅读