【发布时间】:2022-10-24 04:58:17
【问题描述】:
首先,我想非常简要地谈谈应用程序。我的应用程序的主窗体里面有一个子窗体,这个子窗体还包含一个datagridview。您可以在下图中看到我正在谈论的结构。
我有一个非常秘密和神奇的功能。此功能使用热键,功能的工作时间有点长,所以我想制作一个待机屏幕。当我按下热键时,我希望 datagridview 变暗一点,并且消息“请稍候”出现在子窗体的中间。如果你不明白,请看下面的图片。
为此,我在 datagridview 上放置了一个面板并将其设置为
panel.BackColor = Color.FromArgb(50, Color.Black);
panel.Visible = false;
myFunction() 也这样做。
private void myFunction()
{
panel.Visible = true;
// Top secret codes {...}
panelVisible = false;
}
但是这种方法没有奏效。面板出现,但它像这样删除它后面的gridview。
我搜索了很多,但无法解决问题。有没有人有更好的方法或解决方案建议?
【问题讨论】:
-
屏幕截图看起来不像,因为它有任何透明度。它只是似乎被禁用,因此变灰。如果你真的想要一个部分透明的覆盖表单,你可以使用
Opacity属性。或者,请参阅this 回答,了解如何在 WinForms 中创建 Windows 10 模糊透明效果。 -
如果你想使用透明/半透明的面板,你必须创建一个自定义控件,来设置一些特定的样式。背景颜色不够。请参阅示例 here -- 或类似的内容:Translucent circular Control with text