C 實現WinForm窗體逐漸顯示效果

2021-09-06 22:38:08 字數 1487 閱讀 4049

c#實現winform窗體逐漸顯示效果,這個裡面已經有其它人已經實現了,原理很簡單,就是通過定時改變窗體的透明度(從0到1,即透明度從完全透明到不透明),我這裡也是按照這個思路來實現的,但是我做的這個窗體是可復用的,即其它窗體繼承自它後,就能實現漸顯效果,**如下:

using

system;

using

system.componentmodel;

using

system.windows.forms;

namespace

tems.forms

set

}public

formbase()

;formtimer.tick += new

eventhandler(formtimer_tick);

base.opacity = 0

; }

private

void formtimer_tick(object

sender, eventargs e)

else

}private

void formbase_shown(object

sender, eventargs e)}}

以下是自動生成的**:

namespace

tems.forms

base

.dispose(disposing);

}#region windows form designer generated code

//////required method for designer support - do not modify

///the contents of this method with the code editor.

/// private

void

initializecomponent()

#endregion

}}

view code

**中我用new關鍵字覆蓋了form類中的opacity屬性,使其唯讀並且不可編輯,有人可能會說這個屬性的唯讀**寫得不規範,應該是去掉set訪問器或將set設為私有,沒錯,標準的是應該這樣做,而我為何不這樣做呢?原因就是如果真正將屬性設為私有,那麼在其它窗體繼承它的時候,由於我們一般都是先建乙個標準窗體,標準窗體在建立時窗體的屬性若有預設值的會自動生成初始化預設值,標準窗體建立後才將基類改為formbase類,這樣就會造成報錯:opacity是唯讀的,不能賦值,所以我們只可以讓其外面看到是可讀寫,但實際子窗體的賦值不會生效,起到唯讀效果,當然了,如果你不覺得麻煩的話,你可以按標準屬性設定,然後每建立乙個窗體後,請先將opacity的**清除,然後再更改繼承類,這樣也是可以的。

使用就很簡單了,與正常的窗體相同,在這裡就不敘述了,大家可將以上**複製到自己的專案中,便可直接使用。

其實通過以上**的思路,我們可以設計通用的百葉窗切換效果的窗體基類,有空我會試著去實現這些功能,希望大家能支援,謝謝!

WinForm子窗體訪問父窗體控制項的實現方法

form1www.cppcns.com主窗體 複製 如下 public delegate void setvisiablehand程式設計客棧ler 定義委託型別 private void button1 click object sender,eventargs e 單擊事件,開啟子窗體 priv...

C 製作異形WinForm窗體 控制項

製作異形窗體或控制項的思路一般都是想辦法生成乙個region,然後設定給指定的視窗或控制項。生成region的方法有很多,最常用的就是從一幅生成,把該中的透明色部分 摳 掉,剩下的部分作為乙個region。設定視窗或控制項的region可以用setwindowrgn api,不過.net frame...

winform窗體關閉程式退出實現

這篇文章主要介紹了c 中winform程式退出方法,例項總結了技巧退出winform程式視窗的各種常用技巧,非常具有實用價值,需要的朋友可以參考下 1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.env...