2017-05-05 32 views
1

我有子類的形式對我的要求,使下面的代碼影子,如何在運行時禁用陰影?

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

當值更改時,您將必須使用SetWindowLong進行P/Invoke。

+0

如何使用SetWindowLong – Amal