我有一个winforms
C#
应用程序,可以打开多个对话框。为了适应应用程序的风格,我删除了每个窗口的默认标题栏并创建了自己的(使用控制按钮和拖动功能)。
现在面临的问题是,如果没有标题栏,当用户手动移动时,用户无法告诉哪个窗口是“活动”窗口(因此它们不重叠)。
在任何Windows应用程序(使用标题栏)中,当您尝试从对话框导航回主程序时(不关闭对话框) - 它不会让你。对话框的边框闪烁,您听到窗口错误声音。某种等效的视觉反馈非常棒,而不需要使用默认的标题栏 - 并且整个窗口的颜色较暗似乎可以很好地完成。
伪代码中的这样的东西,在对话框打开时很好地着色父窗口:
// tint window now
window.ShowDialog();
// un-tint window
我试图将一个面板覆盖所有颜色设置为'透明'的面板(以便稍后控制面板的不透明度),但透明度似乎不起作用。完成这个的任何其他想法?或者有没有人有更好的建议来达到相同水平的视觉反馈?
摘要: 有没有办法着色整个窗口,或用颜色覆盖它?如果没有,是否有人可以提出另一种方法让窗口显示为“无效”?
答案 0 :(得分:1)
我建议您在要禁用的表单中创建方法:
void DisableForm()
{
//some fancy color
this.BackColor = System.Drawing.Color.Khaki;
//and disable all controls owned by form, just to be sure
foreach (var s in this.Controls)
{
((Control)s).Enabled = false;
}
}
和能够支持这些形式的功能。
修改。 您也可以将控件的可见性属性设置为false