从UserControls访问表单属性



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

我试过了,但没用

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

您可以使用应用程序。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";

您可以调用Control.FindForm Method来获取控件所在的窗体。

并且通常使用0-1之间的小数来分配CCD_ 2。

private void btnInUserControl_Click(object sender, EventArgs e)
{
Form1 form1 = this.FindForm() as Form1;
form1.Opacity = .5;
form1.TopMost = true;
}