दिलचस्प पोस्ट
बुलेट और आरएसपीसी रत्नों का उपयोग करते हुए एन + 1 क्वेरीज़ को कम करना javac1.8 वर्ग नहीं मिला मैं php का उपयोग कर एक डॉकॉक्स दस्तावेज़ को html में कैसे रूपांतरित कर सकता / सकती हूं? क्या यह एक नाशक में शून्य के लिए पॉइंटर्स सेट करना उचित है? php वाक्य सीमाओं का पता लगाने क्या एसटीडी :: कार्यों के बाहर वस्तुओं को स्थानांतरित करना संभव है? (सी ++ 11) सेलेनियम वेबड्रिवर पृष्ठभूमि में चुपचाप खुली ब्राउज़र विंडो कर सकते हैं? घटक आधारित खेल इंजन डिजाइन JAX-WS – दोष अप करने के लिए नक्शा अपवाद विंडो में कांटा () को डुप्लिकेट करने का सबसे अच्छा तरीका क्या है? IIS 7.5 पर ASP.NET MVC आवेदन को गर्म करने के लिए कैसे? जावा वर्ग java.util.ArrayList … और MIME मीडिया प्रकार पाठ / xml के लिए एक संदेश शरीर लेखक नहीं मिला क्या एसएएस में @Emport का उपयोग करके पूरी निर्देशिका आयात करना संभव है? नीचे स्क्रॉल करने के बाद स्टिकी हैडर कैसे एक देशी लाइब्रेरी और एक JAR अंदर एक जेएनआई पुस्तकालय बंडल करने के लिए?

आप एक विंडोज़ फार्म (सी #) पर एनिमेटेड जीआईएफ कैसे दिखाते हैं

मेरे पास एक फार्म है जो प्रगति संदेशों को काफी लंबी प्रक्रिया चलाता है। यह एक वेब सेवा के लिए कॉल है, इसलिए मैं वास्तव में एक प्रगति पट्टी पर संपूर्ण प्रतिशत का अर्थ सार्थक नहीं दिखा सकता। (मुझे विशेष रूप से प्रगति बार की मार्की संपत्ति पसंद नहीं है)

मैं एक एनिमेटेड जीआईएफ को दिखाने के लिए प्रक्रिया को कुछ गतिविधि का अनुभव देने के लिए चाहूंगा (उदाहरण के लिए एक कम्प्यूटर से दूसरी कंप्यूटर की तरह दूसरी कॉप की प्रक्रिया की तरह फाइलें)

आप यह कैसे करते हैं?

वेब के समाधान से एकत्रित समाधान "आप एक विंडोज़ फार्म (सी #) पर एनिमेटेड जीआईएफ कैसे दिखाते हैं"

यह बहुत मुश्किल नहीं है

  1. अपने फॉर्म पर एक तस्वीर बॉक्स ड्रॉप करें
  2. चित्रबॉक्स में छवि के रूप में .gif फ़ाइल जोड़ें
  3. जब आप लोड हो रहे हैं तो चित्र बॉक्स को दिखाएं।

ध्यान में रखना चीजें:

  • चित्र बॉक्स अक्षम करने से एनिमेटेड होने से जीआईएफ को रोका जा सकेगा

एनिमेटेड gifs:

यदि आप एनिमेटेड जीआईएफ की तलाश कर रहे हैं तो आप यहां उन्हें जेनरेट कर सकते हैं

ऐसा करने का दूसरा तरीका:

एक और तरीका है जो मुझे मिल गया है कि काफी अच्छी तरह से काम करता है async संवाद नियंत्रण है कि मैं कोड परियोजना पर पाया

मुझे भी यही समस्या थी। पूरे फार्म (जीआईएफ सहित) पृष्ठभूमि में काम कर रहे लंबे ऑपरेशन के कारण खुद को फिर से तैयार करने के लिए रोक रहा है। यहां बताया गया है कि कैसे मैंने इसे हल किया।

private void MyThreadRoutine() { this.Invoke(this.ShowProgressGifDelegate); //your long running process System.Threading.Thread.Sleep(5000); this.Invoke(this.HideProgressGifDelegate); } private void button1_Click(object sender, EventArgs e) { ThreadStart myThreadStart = new ThreadStart(MyThreadRoutine); Thread myThread = new Thread(myThreadStart); myThread.Start(); } 

मैंने इस ऑपरेशन के लिए जिम्मेदार होने के लिए बस एक और धागा बनाया है। इस शुरुआती फॉर्म के लिए धन्यवाद समस्याओं के बिना रेखांकित करना जारी है (मेरे जीआईएफ के कामकाज सहित) ShowProgressGifDelegate और HideProgressGifDelegate प्रतिनिधि के रूप में हैं, जो कि तस्वीर बॉक्स की दृश्यमान संपत्ति को जीआईएफ के साथ सही / गलत कहते हैं।

ध्यान दें कि विंडोज में, आप पारंपरिक रूप से एनिमेटेड जीआईएफ का उपयोग नहीं करते हैं, लेकिन थोड़ा एवीआई एनीमेशन: इन्हें प्रदर्शित करने के लिए सिर्फ एक विंडोज मूल नियंत्रण है। एनिमेटेड गिफ्स को एवीआई (और इसके विपरीत) में कनवर्ट करने के लिए उपकरण भी हैं।

अगर आप इसे एक पिक्चरबॉक्स नियंत्रण में डालते हैं, तो उसे काम करना चाहिए

यह तब नहीं होता है जब आप पीछे एक लंबे ऑपरेशन शुरू करते हैं, क्योंकि सब कुछ STOPS के बाद से आप एक ही धागे में पुनः।

मेरे पास एक ही मुद्दा था और मैं इसे लागू करने के द्वारा विभिन्न समाधानों में आया था, जिसे मैं कई विभिन्न मुद्दों से सामना करता था। आखिर में, नीचे मैंने जो अलग-अलग पोस्टों से कुछ टुकड़े डाल दिए हैं, जो मेरे लिए उम्मीद के मुताबिक काम करते थे

 private void btnCompare_Click(object sender, EventArgs e) { ThreadStart threadStart = new ThreadStart(Execution); Thread thread = new Thread(threadStart); thread.SetApartmentState(ApartmentState.STA); thread.Start(); } 

यहां एक्ज़ीक्यूशन मेथड भी है, जिसमें पिक्चरबॉक्स नियंत्रण भी शामिल है:

 private void Execution() { btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = true; }); Application.DoEvents(); // Your main code comes here . . . btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = false; }); } 

ध्यान रखें, चित्र बॉक्स गुण विंडो से अदृश्य है या नीचे करें:

 private void ComparerForm_Load(object sender, EventArgs e) { pictureBox1.Visible = false; }