Grundsätzlich habe ich zwei Kategorien:Wie man Daten von ComboBox2 speichern und in ComboBox2 abrufen, indem Sie eine Bedingung in comboBox1 Auswahl
Kategorie - A
Kategorie - B
Ich werde wählen Sie Kategorie - A und Nummer erzeugen Serien von 1 bis 10. Anzeige in Combobox 2 und speichern Sie es.
Ich wähle dann Kategorie B und erzeuge Nummerserien von 1 bis 10, Anzeige in Combobox 2 und speichere sie.
Wenn ich die Anwendung schließe und öffne, möchte ich nur die Serien sehen, die in Kategorie A in ComboBox2 generiert wurden.
Ich habe versucht, es zu tun, indem Sie eine Datagridview hinzufügen, aber es führt beide Kategorieserien zusammen. Screenshot
Kategorie - A -> Serials {1,2,3,4,5,6,7,8,9,10}
Kategorie - B -> Serials {11,12,13,14,15,16,17,18}
.
Wenn ich also Kategorie A wähle, möchte ich nur A-Serien in ComboBox2 und sonst nichts sehen.
Wenn ich Kategorie B wähle, möchte ich nur B-Serien in ComboBox2 und sonst nichts sehen.
private void GenSerialBookButton_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
from = int.Parse(textBox2.Text);
to = int.Parse(textBox3.Text);
result = to - from;
for (int i = 0; i <= result; i++)
{
comboBox2.Items.Add(from + i);
this.SerialBookDataBaseBindingSource.AddNew();
dataGridView1.Rows[i].Cells[1].Value = from + i;
}
MessageBox.Show("Serial Book Generated Success", "Success");
}
if (comboBox1.SelectedIndex == 1)
{
from = int.Parse(textBox2.Text);
to = int.Parse(textBox3.Text);
result = to - from;
for (int i = 0; i <= result; i++)
{
comboBox2.Items.Add(from + i);
this.SerialBookDataBaseBindingSource.AddNew();
dataGridView1.Rows[i].Cells[1].Value = from + i;
}
MessageBox.Show("Serial Book Generated Success", "Success");
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// Clear previous list
a: if (comboBox2.Items.Count > 0)
{
comboBox2.Items.RemoveAt(0);
goto a;
}
if (comboBox1.SelectedIndex == 0)
{
comboBox2.Items.Clear();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
comboBox2.Items.Add(row.Cells[1].Value);
MessageBox.Show("Adding: " + (row.Cells[1].Value.ToString()));
comboBox2.Refresh();
}
}
if (comboBox1.SelectedIndex == 1)
{
comboBox2.Items.Clear();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
comboBox2.Items.Add(row.Cells[1].Value);
MessageBox.Show("Adding: " + (row.Cells[1].Value.ToString()));
comboBox2.Refresh();
}
}
}
}
}
Also, wenn Sie wollen Anwendung schließen und wieder zu öffnen, da werden keine Daten sein. Sie müssen eine Quelle zum Speichern von Daten verwenden. (DBMS, TextFile, XML oder etwas anderes.) – Berkay
Wenn ich den Index von ComboBox 1 ändere, bearbeite ich gespeicherte Daten neu, wenn die Anwendung läuft. Ich speichere derzeit keine Daten in meinem Code, ich kann das tun, aber das ist nicht das Problem, Problem ist, dass ich nur Kategorie A-Serien anzeigen möchte, wenn Kategorie A ausgewählt ist, und Kategorie B-Serien bei Kategorie B-Serien sind ausgewählt. In diesem Code, ich speichere alle Kategorie A und B Serien zusammen, ich kann nicht scheinen, herauszufinden, wie diese Liste der Serien in Kategorie A speichern und zurück zugreifen. – Patrick
Tag mit 'winforms' oder' wpf' für zukünftige Referenzen bitte. – Kilazur