Ich möchte einen Combobox verwenden, um Elemente aus einer CSV -Datei auszuwählen. Wenn ich eine Zeichenfolge in den Combobox eingeben, sollte der Dropdown die Elemente angezeigt werden, die zu dem entsprechen, was ich eingeben. Wenn ein Teil einer Zeichenfolge aus der CSV -Datei mit meinem Text übereinstimmt, sollte sie in der Dropdown -Liste angezeigt werden. Ich muss in der Lage sein, mit Pfeil nach oben auszuwählen, und wenn ich die Eingabetaste drücke, sollte die Texteigenschaft des Comboboxs mit der ausgewählten Zeichenfolge aus der Dropdown -Seite gefüllt werden. Der Haken ist, dass, wenn ich eine Zeichenfolge einmachte, die keine Elemente aus der Dropdown -Down -Down -Sache übereinstimmt und dann die Eingabetaste drücke, das Programm mir darüber informieren sollte, dass keine Übereinstimmungen gefunden wurden. Im Moment erhöht der Code eine Ausnahme, die im Versuch begangen wurde ... Catch Loop. Unten ist der Code. Der CSV -Inhalt sind diese Begriffe, eine pro Zeile: cona, conb, conc, dab, dac < /p>
[url=viewtopic.php?t=14917]Ich möchte[/url] einen Combobox verwenden, um Elemente aus einer CSV -Datei auszuwählen. Wenn ich eine Zeichenfolge in den Combobox eingeben, sollte der Dropdown die Elemente angezeigt werden, die zu dem entsprechen, was ich eingeben. Wenn ein Teil einer Zeichenfolge aus der CSV -Datei mit meinem Text übereinstimmt, sollte sie in der Dropdown -Liste angezeigt werden. Ich muss in der Lage sein, mit Pfeil nach oben auszuwählen, und wenn ich die Eingabetaste drücke, sollte die Texteigenschaft des Comboboxs mit der ausgewählten Zeichenfolge aus der Dropdown -Seite gefüllt werden. Der Haken ist, dass, wenn ich eine Zeichenfolge einmachte, die keine Elemente aus der Dropdown -Down -Down -Sache übereinstimmt und dann die Eingabetaste drücke, das Programm mir darüber informieren sollte, dass keine Übereinstimmungen gefunden wurden. Im Moment erhöht der Code eine Ausnahme, die im Versuch begangen wurde ... Catch Loop. Unten ist der Code. Der CSV -Inhalt sind diese Begriffe, eine pro Zeile: cona, conb, conc, dab, dac < /p> [code]using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms;
namespace ComboBoxDB { public partial class Form1 : Form { // In-memory list to hold the CSV data. private List items = new List(); // Path to your CSV file. private string csvFilePath = "data.csv";
// Flags to track state private bool _isUpdating = false; private string _userTypedText = string.Empty; private bool _isNavigating = false; // Flag to suppress dropdown reopening after selection (via Enter) private bool _suppressDropdownAfterSelection = false;
public Form1() { InitializeComponent(); LoadCSV(); SetupComboBox(); }
// Load the CSV file into the 'items' list. private void LoadCSV() { if (File.Exists(csvFilePath)) { items = File.ReadAllLines(csvFilePath).ToList(); } else { items = new List { "CONA", "CONB", "CONC", "DAB", "DAC" }; File.WriteAllLines(csvFilePath, items); } }
// Set up the ComboBox with all needed event handlers. private void SetupComboBox() { cbManPN.AutoCompleteMode = AutoCompleteMode.None; cbManPN.AutoCompleteSource = AutoCompleteSource.None; cbManPN.DropDownStyle = ComboBoxStyle.DropDown;
// We save these values in case we restore them below. int selectionStart = cbManPN.SelectionStart; if (selectionStart > _userTypedText.Length) selectionStart = _userTypedText.Length;
cbManPN.BeginUpdate(); // Clear items and ensure no leftover selection. cbManPN.Items.Clear(); cbManPN.SelectedIndex = -1;
if (filteredItems.Length > 0) { // Add new items and reset selected index. cbManPN.Items.AddRange(filteredItems); cbManPN.SelectedIndex = -1;
// Only open the dropdown if we have text and not suppressing. cbManPN.DroppedDown = (currentText.Length > 0 && !_suppressDropdownAfterSelection);
// Update the ComboBox text and caret position to preserve user’s input. cbManPN.Text = currentText; if (cbManPN.Focused) cbManPN.SelectionStart = selectionStart; } else { // If no matches, close the dropdown (but don't reset the text). cbManPN.DroppedDown = false; }
if (!string.IsNullOrWhiteSpace(finalText)) { // Check for partial matches with the same logic as TextChanged. var filteredMatches = items .Where(i => i.IndexOf(finalText, StringComparison.OrdinalIgnoreCase) >= 0) .ToArray();
if (filteredMatches.Length == 0) { MessageBox.Show("No matching elements in the database.", "No Match", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void cbManPN_DropDownClosed(object sender, EventArgs e) { // If the dropdown closed while navigating, decide what to do with the text. if (_isNavigating) { _isNavigating = false; if (cbManPN.SelectedIndex == -1 && !string.IsNullOrEmpty(_userTypedText)) { _isUpdating = true; cbManPN.Text = _userTypedText; if (cbManPN.Focused) cbManPN.SelectionStart = _userTypedText.Length; _isUpdating = false; } } } } } [/code]
Ich muss eine Konsolenanwendung (möglicherweise in Java) mit ncurses-ähnlicher Funktionalität implementieren (z. B. Navigieren in einem Menü und Neuzeichnen des gesamten Bildschirms).
Ich versuche, die praktische Bedeutung abstrakter Klassen in der objektorientierten Programmierung, insbesondere in PHP, zu verstehen.
Nach meinem Verständnis erzwingen abstrakte Klassen...
Hat jemand das gleiche Problem gehabt? Ich implementieren die Web Share API und sie funktioniert, als ich sie auf meinem Desktop getestet habe, aber als ich sie mit meinem iPhone 14 getestet habe,...
Ich konnte JPA/Hibernate haben, um die Funktionalität auf Löschen von Kaskade erfolgreich zu replizieren (scheint das Standardverhalten zu sein), aber ich versuche jetzt, die Funktionen von Löschen...
Ich möchte es schaffen, damit die Benutzer Bilder mögen können. Der Benutzer würde nur mögen, ohne Ablehnung. Derzeit sehe ich es so.
Ich habe 3 Tabellen.
Table: Images
Columns: id, title,...