會(huì)。vb.netwinform是會(huì)閃爍的,其作用就是為了雙緩沖,解決控件刷新。而WinForm就是.Net開(kāi)發(fā)平臺(tái)中對(duì)WindowsForm的一種稱謂。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比鄂爾多斯網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式鄂爾多斯網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鄂爾多斯地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
我說(shuō)一下思路:
先從控件工具欄拖一個(gè)Timer控件(圖標(biāo)是表的那個(gè))到界面
雙擊界面的Timer控件,在Timer的Tick事件里面,加一個(gè)判斷,就是當(dāng)那個(gè)要閃爍控件的visible屬性等于true的時(shí)候,就賦值成false,否則當(dāng)那個(gè)要閃爍控件的visible屬性等于false的時(shí)候,就賦值成true
將Timer控件的的Interval屬性設(shè)置成1000,因?yàn)檫@個(gè)是毫秒作為單位的,1000毫秒就是1秒,你也可以根據(jù)你的需要自行設(shè)置
將Timer控件的的Enable屬性設(shè)置成true(如果使用其它控件控制,可以設(shè)置成false,然后再那個(gè)控件的click事件里面將其設(shè)置成true)
給你看一下代碼:
Private Sub Form_Load()
Timer1.Interval = 1000 '設(shè)置閃爍間隔時(shí)間,這個(gè)單位是毫秒,1000毫秒就是1秒
End Sub
Private Sub Timer1_Timer()?? '這里的Text1是控件名稱,我這里使用的是一個(gè)文本框舉例,你可以換成其它的控件的控件名
If Text1.Visible = True Then
Text1.Visible = False
Else
If Text1.Visible = False Then
Text1.Visible = True
End If
End If
End Sub
VB.NET畫(huà)圖是不能設(shè)置雙緩沖的,雙緩沖是指窗體,從來(lái)沒(méi)說(shuō)是針對(duì)控件。
不用graphic.clear清理重畫(huà)就不會(huì)閃爍。你可以先把容器刪了再重新建立一個(gè)再去畫(huà)。
簡(jiǎn)單舉例:
Graphics g;
Pen p;
Panel pl;
構(gòu)造函數(shù)初始化:
p=new Pen(Color.Red,2);
pl=panel1;
造成閃爍的畫(huà)法:
g=pl.CreateGraphics();
g.Clear(SystemColor.ButtonFace);
//.....畫(huà)新的
不會(huì)閃爍的辦法:
this.Controls.ReMoveAt(panel1);
pl=new Panel();
pl.Name="panel1";
//....創(chuàng)建容器控件
this.Controls.Add(pl);
//繼續(xù)畫(huà)
這個(gè)問(wèn)題我以前也遇到過(guò),好像是顯卡或顯卡的驅(qū)動(dòng)問(wèn)題,在更換顯卡(比較好一點(diǎn)的顯卡)后問(wèn)題解決了。