C# 带有灰色背景的弹出模式对话框
我想做一个经典的模式窗口与黑暗的背景 我不知道为什么这么难做到。我尝试了很多方法去做,但是它不符合我的需要 我有10+模态窗口,它们是定制的形式,它们有网格、图表等 他们不是“好的,不,取消”员工 我尝试应用下面的代码。代码基本上在父窗体和模态窗体之间创建另一个黑色背景窗体C# 带有灰色背景的弹出模式对话框,c#,winforms,C#,Winforms,我想做一个经典的模式窗口与黑暗的背景 我不知道为什么这么难做到。我尝试了很多方法去做,但是它不符合我的需要 我有10+模态窗口,它们是定制的形式,它们有网格、图表等 他们不是“好的,不,取消”员工 我尝试应用下面的代码。代码基本上在父窗体和模态窗体之间创建另一个黑色背景窗体 Form f = new Form(); f.BackColor = Color.Black; f.Size = this.Size;
Form f = new Form();
f.BackColor = Color.Black;
f.Size = this.Size;
f.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
f.StartPosition = this.StartPosition;
f.Opacity = 0.6;
f.Show();
notificationSGA nsga = new notificationSGA(Cursor.Position);
nsga.ShowDialog();
f.Dispose();
f.Close();
上面的代码工作得非常好。但是,如果我将父窗体(主窗体)移动到某个位置而不是屏幕中心,则黑色窗体仍然显示在屏幕中心,而不是屏幕的父窗体
我如何解决我的问题
注:这不是与以下问题重复的主题;
将
.StartPosition
更改为.Manual
,以便您可以将位置设置为参考表格所在的位置。
另外,在两个新表单的.Show()
方法中更改所有者。
谢谢你,先生。你是完美的。
Form f = new Form();
//(...)
f.Size = this.Size;
f.StartPosition = FormStartPosition.Manual;
f.Location = this.Location;
//(...)
f.Show(this);
notificationSGA nsga = new notificationSGA(Cursor.Position);
nsga.StartPosition = FormStartPosition.CenterParent;
nsga.ShowDialog(f);
f.Dispose();