改变另一个窗体的不透明度
本文关键字:不透明度 窗体 另一个 改变 | 更新日期: 2023-09-27 18:06:23
我正在制作一个程序,并且我在程序内具有该程序的选项的另一种形式。选项是Checkboxes
,应该启用不透明度。我可以改变主窗体与其他窗体的不透明度吗?
private void useOpacity_CheckedChanged(object sender, EventArgs e)
{
if (useOpacity.Checked)
{
window().Opacity = .75;
}
}
如果这是父窗体的子窗体,您可以这样做:
this.Parent.Invoke((MethodInvoker)delegate {
Form temp = (Form)this.Parent;
temp.Opacity = 0.75});
使用委托
public class OptionWindow
{
public delegate void oppacityDelegate(double value);
public static event oppacityDelegate oppacity;
调用它private void useOpacity_CheckedChanged(object sender, EventArgs e)
{
if (useOpacity.Checked)
{
oppacity(.75);
}
}
并在你的高级课程中抓住它
OptionWindow.oppacity += ChangeOppacity;
通过选项窗口的构造函数传递MainWindow
。然后在选项窗口中:
public class OptionWindow : Form
{
Form _mainWindow; //YOUR PROGRAM IS OF TYPE Form
public OptionWindow(Form mainWindow)
{
this._mainWindow = mainWindow;
}
private void useOpacity_CheckedChanged(object sender, EventArgs e)
{
if (useOpacity.Checked)
{
_mainWindow.Opacity = .75;
}
}
}
当你使用程序
中的OptionWindow
时OptionWindow window = new OptionWindow(this);
window.Show();