2009-07-01 20 views
5

मेरे पास फॉर्म पर स्वत: पूर्ण सुविधा वाला .NET टेक्स्टबॉक्स है। फॉर्म में AcceptButton और CancelButton भी परिभाषित किया गया है। अगर मैं एसीसी के साथ एंटर कुंजी के साथ सुझाव देने या बंद करने की कोशिश करता हूं, तो मेरा फॉर्म बंद हो जाता है। मैं इस व्यवहार को कैसे रोक सकता हूं?टेक्स्टबॉक्स स्वत: पूर्ण और डिफ़ॉल्ट बटन

उत्तर

2

AcceptButton और CancelButton फॉर्म गुणों को असाइन न करें। ऑनक्लिक घटना बटन में DialogResult सेट करें।

0

बजाय स्वीकार करें और बटन आप निम्नलिखित दृष्टिकोण के लिए जा सकते हैं रद्द करने के लिए:

  1. सच करने के लिए फार्म के लिए KeyPreview संपत्ति सेट करें।
  2. फार्म के KeyDown घटना संभाल, हैंडलर विधि में आप नीचे दिए गए कोड के समान

    switch (e.KeyCode) 
    { 
        case Keys.Enter: 
        { 
         if (!txtAuto.Focused) 
         { 
          Save(); 
         } 
         break; 
        } 
        case Keys.Escape: 
        { 
         if (!txtAuto.Focused) 
         { 
          Close(); 
         } 
         break; 
        } 
    } 
    
+0

KeyDown घटना सक्रिय नहीं होगा:एक अन्य विकल्प अपने स्वयं के कस्टम पाठ बॉक्स वर्ग कि सत्यापन प्रदर्शन करती है जब enture/वापसी दबाया जाता है प्राप्त करने के लिए है। – Zhenya

2

सरल तरीका कुछ हो सकता है AcceptButton और CancelButton गुण दूर करने के लिए है जबकि आप ऑटो-पूर्ण टेक्स्टबॉक्स में हैं:

public Form1() 
    { 
     InitializeComponent(); 

     txtAuto.Enter +=txtAuto_Enter; 
     txtAuto.Leave +=txtAuto_Leave; 
    } 

    private void txtAC_Enter(object sender, EventArgs e) 
    { 
     AcceptButton = null; 
     CancelButton = null; 
    } 

    private void txtAC_Leave(object sender, EventArgs e) 
    { 
     AcceptButton = btnOk; 
     CancelButton = btnCancel; 
    } 
0
फार्म के
public class MyTextBox : TextBox 
{ 
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     if (keyData == Keys.Enter || keyData == Keys.Return) 
     { 
      // Perform validation here 
      return true; 
     } 
     else 
      return false; 
    } 
} 
संबंधित मुद्दे