Ich versuche, eine Anzahl von Textfeldern basierend auf dem Zellwert der Zeile in einem Datagridview zu erstellen und füllen Sie die Textfelder mit jedem Wert. Ich habe es so, es greift alle Daten bis jetzt (MessageBox.Show(textBox.text)
) und es zeigt wie erwartet. Wenn ich jedoch versuche, die Textfelder zu erstellen, erstellt es nur eines (das kann ich in der Windows-Formularanwendung sehen).Anzeigen der Anzahl der Textfelder basierend auf Spalten in Datagridview
Hier ist mein Code für das Click-Ereignis:
qbcDataGridView.RowHeaderMouseClick += (object sender, DataGridViewCellMouseEventArgs e) =>
{
id = Convert.ToInt32(qbcDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
// get all the columns and assign them to textboxes text
for (int i = 0; i < qbcDataGridView.Rows[e.RowIndex].Cells.Count; i++)
{
var textBox = new TextBox
{
Name = qbcDataGridView.Rows[e.RowIndex].Cells[i].Value.ToString(),
Font = new Font(qbcDataGridView.Font.FontFamily, 12),
Text = qbcDataGridView.Rows[e.RowIndex].Cells[i].Value.ToString(),
Location = new Point(80, 50)
};
Controls.Add(textBox);
// used for testing
MessageBox.Show(textBox.Text);
}
};
Hier ist ein Screenshot (s) des Programms in Aktion:
Hauptbildschirm -
Bildschirm wenn datagridview geklickt wurde -
(I kommentierte die MessageBox.Show(textBox.Text)
, aber es zeigt 3, jimmy, Test, Test, Test, Mitglied)
Ich weiß nicht, ob es das für Schleife selbst zu überschreiben, aber das scheint unwahrscheinlich, da es zeigt alle Daten über die Nachrichtenbox. Ich lehne mich der Positionierung zu, bin mir aber nicht ganz sicher.
Jede Hilfe wäre willkommen.
Danke!
Du sie alle an der gleichen Stelle, so dass nur die oberste zeigen setzen. Sie wissen, dass Daten innerhalb des DGV editiert werden können und bestimmte Validierungen durchgeführt werden, die nur gültige Daten zulassen? – Plutonix
das habe ich mir gedacht. Ja, ich weiß das, aber der Benutzer möchte Textfelder. :/ – user2101411
alles, was ich tun kann, um das zu beheben? – user2101411