我已根据我的要求创建了子表单,并使用以下代码启用了阴影,
bool showShadow=true;
public bool ShowShadow
{
get{ return showShadow;}
set{showShadow= value;}
}
protected override CreateParams CreateParams
{
get
{
CreateParams value = base.CreateParams;
value.ExStyle |= WindowMessages.WS_EX_TOPMOST;
if (this.ShowShadow)
value.ClassStyle |= WindowMessages.CS_DROPSHADOW;
return value;
}
}
我只是通过以下代码创建单个实例来展示自定义表单,
MyForm myform= new MyForm();
myForm.Visible= true;
并通过myform隐藏它.Visible = false;
并且我禁用了窗体的阴影,但阴影正在绘制,因为CreateParams没有使用禁用阴影进行更新。
有谁知道,如何在运行时更改ShowShadow属性时为单个表单实例调用CreateParams?
请帮我解决这个问题。
答案 0 :(得分:0)
当值发生变化时,您必须使用SetWindowLong
进行P / Invoke。