Ich habe eine .NET TextBox mit AutoVervollständigen-Funktion auf dem Formular. Das Formular hat auch AcceptButton und CancelButton definiert. Wenn ich versuche, einen Vorschlag mit der Eingabetaste zu bestätigen oder das Dropdown-Menü mit Esc zu schließen, wird mein Formular geschlossen. Wie kann ich dieses Verhalten verhindern?TextBox Autocomplete und Standardschaltflächen
5
A
Antwort
2
Keine AcceptButton- und CancelButton-Formulareigenschaften zuweisen. Setzen Sie DialogResult in den Schaltflächen OnClick-Ereignis.
0
statt zu akzeptieren und Abbrechen Schaltflächen, die Sie für den folgenden Ansatz gehen:
- Set KeyPreview Eigenschaft für das Formular auf true.
Behandeln Sie das KeyDown- Ereignis des Formulars, in der Behandlermethode Sie etwas ähnlich den Code unten
switch (e.KeyCode) { case Keys.Enter: { if (!txtAuto.Focused) { Save(); } break; } case Keys.Escape: { if (!txtAuto.Focused) { Close(); } break; } }
2
einfache Art und Weise haben kann, ist zu entfernen AcceptButton und CancelButton Eigenschaften während Sie sich in der Auto-Vervollständigen-Textbox befinden:
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
Eine weitere Option ist Ihre eigene benutzerdefinierte TextBox Klasse abzuleiten, die Validierung durchführt, wenn Enture/Return gedrückt wird:
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;
}
}
Verwandte Themen
- 1. AutoComplete TextBox Control
- 2. AutoComplete TextBox in WPF
- 3. Autocomplete TextBox auf Tab
- 4. Autocomplete-Textbox funktioniert nicht
- 5. jQuery Autocomplete und Gridview Fußzeile Textbox ASP.NET
- 6. ASP.NET TextBox mit JQuery AutoComplete
- 7. WinForms: Autocomplete in mehrzeiliger Textbox
- 8. Windows Forms: Mehrere Standardschaltflächen?
- 9. Erstellen eines Autocomplete Textbox mit Drop-Down-
- 10. C# Textbox AutoComplete: Begrenzen auf ~ 50 Vorschläge
- 11. Wie funktioniert StackOverflow 'Tags' Textbox Autocomplete?
- 12. Nicht übereinstimmung von Autocomplete Textbox Design
- 13. Dynamische Höhe für AJAX Autocomplete Textbox
- 14. ASP.NET - AutoComplete TextBox, wenn DropDownList wählen Element
- 15. Autocomplete-Textbox mit mehreren Werten getrennt durch Punkt und Elemente
- 16. JQuery Autocomplete Textbox bei ausgewählten Ereignissen
- 17. Autocomplete Textbox nicht zum nächsten Datensatz
- 18. AutoComplete TextBox mit nur einer einzigen Suche BackgroundWorker - Codebeispiel?
- 19. Wie mache ich die Autocomplete-Liste für eine TextBox editierbar?
- 20. select2 - benutze als Autocomplete-Textbox (auch wenn keine Option)
- 21. Listbox kann nicht aus Datentabelle gefüllt werden (AutoComplete TextBox)
- 22. Wie können Sie AutoComplete-Daten asynchron für eine TextBox abrufen?
- 23. Textbox Autocomplete in WebBrowser ausgelöst Ereignis des Formulars deaktivieren?
- 24. Wie kann ich das Autocomplete-Textbox-Ereignis in MVC3 hinzufügen
- 25. jquery Autocomplete Textbox, wenn es mit einem Sonderzeichen wie @
- 26. Wie übergeben Sie den Textbox-Wert in jquery Autocomplete
- 27. WinForms | C# | AutoComplete in der Mitte einer Textbox?
- 28. jQuery Autocomplete und ASP.NET
- 29. Autocomplete jquery und Rails4
- 30. Knockout und jQuery Autocomplete
KeyDown-Ereignis des Formulars wird nicht ausgelöst werden. – Zhenya