यहां मेरा दिमाग खोने के बारे में। मैं इस नाबालिग को हल करने की कोशिश कर रहे एक घंटे के लिए गुगल रहा हूं, लेकिन अविश्वसनीय रूप से बढ़ती समस्या।टैब के आइकन को बदलते समय टैबकंट्रोल झिलमिलाहट
मेरे पास दो टैब के साथ मेरे फॉर्म पर TabControl
है। उनमें से प्रत्येक टैब में 16x16 आइकन और कुछ टेक्स्ट है। यहां कुछ भी पागल नहीं चल रहा है।
मुझे कुछ परिस्थितियों में एक टैब आइकन झपकी बनाने की आवश्यकता है। इसलिए मैंने दो छवियां, और
बनाई और द्वारा उपयोग किए गए में उन्हें जोड़ा। मैंने एक पृष्ठभूमि टाइमर स्थापित किया जो दो छवियों के बीच एक झपकी आइकन अनुकरण करने के लिए टॉगल करता है। ठीक काम करता है।
हालांकि, यह सभी टैब हेडर को फिर से निकालने का कारण बन रहा है, जो उन्हें झिलमिलाहट कर रहा है।
TabControl
डबल-बफरिंग का समर्थन नहीं करता है, इससे कोई फर्क नहीं पड़ता कि आप क्या करने का प्रयास करते हैं।
मैंने पाया लोगों को कुछ इस कोड का उपयोग झिलमिलाते taming सफलता:
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H2000000
Return cp
End Get
End Property
के रूप में, काम करता है यही कारण है कि, यह झिलमिलाहट नहीं करता है ... लेकिन प्रतीक भी नेत्रहीन अब और जब तक परिवर्तन नहीं करते माउस कर्सर कुछ ऐसा करता है जो एक रेड्रो का कारण बनता है।
क्या किसी के पास कोई वैकल्पिक समाधान या चाल है जो काम कर सकती है? यह वास्तव में सॉफ्टवेयर के लिए एक बहुत ही आवश्यक विशेषता है।
कंकाल कोड:
Public Class Form1
Dim BlinkTimer As Windows.Forms.Timer
Dim BlinkToggler As Boolean = False
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
InitBlinker()
End Sub
Private Sub InitBlinker()
BlinkTimer = New Windows.Forms.Timer
AddHandler BlinkTimer.Tick, AddressOf Blinker_Tick
With BlinkTimer
.Enabled = True
.Interval = 250
End With
StartBlinker()
End Sub
Public Sub StartBlinker()
SomeTabPage.ImageKey = "light_off.png"
BlinkToggler = False
BlinkTimer.Start()
End Sub
Public Sub StopBlinker()
SomeTabPage.ImageKey = "light_off.png"
BlinkToggler = False
BlinkTimer.Stop()
End Sub
Private Sub Blinker_Tick()
If BlinkToggler Then
SomeTabPage.ImageKey = "light_on.png"
Else
SomeTabPage.ImageKey = "light_off.png"
End If
BlinkToggler = Not BlinkToggler
End Sub
End Class
... मैं यहां से बाहर हो सकता हूं, लेकिन एनिमेटेड gif के बारे में क्या है और फिर आपको इसके बारे में चिंता करने की ज़रूरत नहीं है? –
टैबकंट्रोल को डबल-बफर नहीं किया जा सकता है, इसलिए आपको शायद इस सीमा के साथ रहना होगा या स्क्रीन पर कहीं और फ्लैश करने के लिए अपने चमकती रोशनी बल्बों को डिजाइन करना होगा। – LarsTech
@ जॉन बुस्टोस मैंने एनिमेटेड gif की कोशिश की, काम नहीं करता (एनिमेट नहीं करता)। यही वह सुझाव है जिसे मैं ढूंढ रहा था, धन्यवाद। – user1003916