मैं एक विंडोज़ फॉर्म एप्लिकेशन (सी #) पर काम कर रहा हूं जहां कोई उपयोगकर्ता किसी फॉर्म में डेटा दर्ज कर रहा है। किसी भी समय फॉर्म में डेटा संपादित करते समय उपयोगकर्ता कुछ क्रियाओं को करने के लिए फॉर्म में से किसी एक बटन पर क्लिक कर सकता है। डिफ़ॉल्ट रूप से फोकस क्लिक किए गए बटन पर जाता है, इसलिए उपयोगकर्ता को उस नियंत्रण पर वापस क्लिक करना होता है जिसे वे फ़ॉर्म पर डेटा संशोधित करना जारी रखने के लिए संपादित करना चाहते हैं। मुझे क्लिक करने में सक्षम होने की आवश्यकता है बटन क्लिक ईवेंट संसाधित होने के बाद अंतिम संपादित नियंत्रण पर ध्यान केंद्रित करें। यहाँ एक नमूना स्क्रीनशॉट दिखाता है कि मैं किस बारे में बात कर रहा हूँ है:Winform ऐप में बटन क्लिक करने के बाद आप अंतिम उपयोग किए गए नियंत्रण पर फ़ोकस कैसे वापस कर सकते हैं?
उपयोगकर्ता textbox1, TextBox2, textbox3, आदि में डेटा दर्ज किया और बटन क्लिक कर सकते हैं। मुझे उस फोकस को वापस उस नियंत्रण में वापस करने के लिए बटन की आवश्यकता है जिसे बटन पर क्लिक करने से पहले हाल ही में फोकस था।
मुझे आश्चर्य है कि अगर किसी के पास आने के मुकाबले इस कार्यक्षमता को लागू करने का कोई बेहतर तरीका है। यहाँ अभी मैं क्या कर रहा है:
public partial class Form1 : Form
{
Control _lastEnteredControl;
private void textBox_Enter(object sender, EventArgs e)
{
_lastEnteredControl = (Control)sender;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Do something here");
_lastEnteredControl.Focus();
}
}
तो मूल रूप से क्या हम यहाँ है एक वर्ग चर है कि पिछले के लिए अंक नियंत्रण में प्रवेश किया है। फ़ॉर्म पर प्रत्येक टेक्स्टबॉक्स सेटअप है इसलिए जब नियंत्रण को फोकस प्राप्त होता है तो textBox_Enter विधि निकाल दी जाती है। फिर, जब बटन क्लिक किया जाता है तो फोकस को उस नियंत्रण में वापस कर दिया जाता है जिस पर बटन क्लिक करने से पहले फोकस था। इस के लिए किसी के पास और अधिक सुरुचिपूर्ण समाधान हैं?
आपको रिकर्सन की आवश्यकता है। – SLaks