欧美国产另类久热|951超碰伊人久久|伊人影视久久久久|色婷婷亚洲小电影|色东京热69XX|婷婷玖玖深爱网|加勒比东京热网站|无码A级毛片在线观看|一级a毛一级a看|中文字幕人妻欧美

c#實現(xiàn)winform窗體逐漸顯示效果
來源:易賢網(wǎng) 閱讀:1472 次 日期:2016-06-27 08:40:27
溫馨提示:易賢網(wǎng)小編為您整理了“c#實現(xiàn)winform窗體逐漸顯示效果”,方便廣大網(wǎng)友查閱!

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

using system;

using system.componentmodel;

using system.windows.forms;

namespace tems.forms

{

public partial class formbase : form

{

private timer formtimer = null;

/// <summary>

/// 獲取opacity屬性

/// </summary>

[defaultvalue(0)]

[browsable(false)]

public new double opacity

{

get { return base.opacity; }

set { base.opacity = 0; }

}

public formbase()

{

initializecomponent();

formtimer = new timer() { interval = 100 };

formtimer.tick += new eventhandler(formtimer_tick);

base.opacity = 0;

}

private void formtimer_tick(object sender, eventargs e)

{

if (this.opacity >= 1)

{

formtimer.stop();

}

else

{

base.opacity += 0.2;

}

}

private void formbase_shown(object sender, eventargs e)

{

formtimer.start();

}

}

}

以下是自動生成的代碼:

namespace tems.forms

{

partial class formbase

{

/// <summary>

/// required designer variable.

/// </summary>

private system.componentmodel.icontainer components = null;

/// <summary>

/// clean up any resources being used.

/// </summary>

/// <param name=disposing>true if managed resources should be disposed; otherwise, false.</param>

protected override void dispose(bool disposing)

{

if (disposing && (components != null))

{

components.dispose();

}

base.dispose(disposing);

}

#region windows form designer generated code

/// <summary>

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

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

/// </summary>

private void initializecomponent()

{

this.suspendlayout();

//

// formbase

//

this.autoscaledimensions = new system.drawing.sizef(6f, 12f);

this.autoscalemode = system.windows.forms.autoscalemode.font;

this.clientsize = new system.drawing.size(284, 262);

this.name = formbase;

this.text = formbase;

this.shown += new system.eventhandler(this.formbase_shown);

this.resumelayout(false);

}

#endregion

}

}

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

使用就很簡單了,與正常的窗體相同,在這里就不敘述了,大家可將以上代碼復制到自己的項目中,便可直接使用。

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

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:c#實現(xiàn)winform窗體逐漸顯示效果
由于各方面情況的不斷調整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢?yōu)闇剩?/div>
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網(wǎng)