मैंने एक कार्य प्रबंधन अनुप्रयोग बनाया है और मैं 2-उपयोगकर्ताओं के लिए विशिष्ट कार्य के बारे में बात करने की क्षमता को कार्यान्वित करना चाहता हूं।यह जांचने का सही तरीका है कि कोई फ़ॉर्म पहले से दिखाया गया है या नहीं?
Form1
में मेरे पास एक टाइमर है जो किसी भी नए संदेश के लिए डेटाबेस पर जांच करता है। जब एक नया संदेश मिला, तो चैट फॉर्म संदेश दिखा रहा है।
अभी तक, सब कुछ अपेक्षित काम कर रहा है लेकिन मुझे केवल एक समस्या है।
समस्या: नया संदेश के लिए पहली बार पाया एक बार, चैट विंडो दिखाई है, लेकिन जब एक और नया संदेश पाया जाता है, अन्य विंडो दिखाई देते हैं, और प्रत्येक नए संदेश के लिए मैं चैट का एक नया उदाहरण है खिड़की बनाई गई।
कोड मैं उपयोग कर रहा हूँ: frm14.ShowDialog();
मैंने देखा जब नया संदेश प्राप्त होता है, चैट विंडो (form14) है कि साथ frm14.Show();
:
List<string> tasksToDiscuss = checkForTasksToDiscuss(fullname);
if (tasksToDiscuss.Count > 0) {
// open the chat window directly minimized
Form14 frm14 = new Form14();
frm14.get_from = fullname;
frm14.get_to = tasksToDiscuss[1];
frm14.get_task_id = int.Parse(tasksToDiscuss[3]);
// set message as read
if (setMessageAsRead(tasksToDiscuss[1], fullname, int.Parse(tasksToDiscuss[3])))
{
// now show the chat window minimized
frm14.Show();
}
}
मैं लाइन को बदलने के लिए करने की कोशिश की दिखाया गया है, और जब एक ही उपयोगकर्ता से एक और संदेश प्राप्त होता है, तो कोई भी नई चैट विंडो नहीं दिखाई देती है, लेकिन समस्या यह है कि जब मैं चैट विंडो बंद करता हूं, तब भी जब मैं नए संदेश प्राप्त करता हूं तब भी यह प्रकट नहीं होता है।
मुझे क्या लगता है कि चैट विंडो (फॉर्म 14.Text) को उपयोगकर्ता पूर्ण नाम में बदलना है, और अगली बार जब कोई संदेश प्राप्त होता है, तो मैं जांचता हूं कि विशिष्ट विंडो पहले से ही खुली है, फिर इसे खोलें अन्यथा मैं .Show()
विधि का उपयोग कर फ़ॉर्म दिखाता हूं।
क्या नया संदेश प्राप्त होने पर विंडो को प्रकट करने का यह सही तरीका नहीं है और यह अलौकिक रूप से खोला गया है? और गीलेर की जांच कैसे करें इसके पाठ (शीर्षक बार टेक्स्ट) के अनुसार एक विंडो खोला गया है?
मेरा प्रश्न पढ़ने में समय लेने के लिए धन्यवाद। किसी भी मदद की अत्यधिक सराहना की जाएगी
आपका कोड अपेक्षित ढंग से काम कर रहा है। लेकिन क्या होगा यदि मुझे किसी अन्य उपयोगकर्ता से नया संदेश मिल रहा है, जबकि मैं पहले से किसी और के साथ चैट कर रहा हूं? –
@ShikataGaNai उस मामले में आपको शायद फ़ॉर्म की एक सूची की आवश्यकता है - सिस्टम पर प्रति उपयोगकर्ता। एक फॉर्म को या तो एक शब्दकोश के साथ बदलें या शायद इसे उपयोगकर्ता के ठीक से भी बनाएं। – ChrisF