Matrix einlesen



  • Hallo
    Ist es möglich über eine listview eine Matrix eingeben?
    Dazu gibt man erst Spalten und Zeilen ein und in einer listview wird eine Matrix erzeugt.
    Hier der Code dazu:

    private void CreateMatrix()
            {
                listView1.Items.Clear();
                listView1.LabelEdit = false;
                listView1.AllowColumnReorder = true;
                listView1.FullRowSelect = false;
                listView1.GridLines = true;
                listView1.Sorting = SortOrder.Ascending;
                listView1.CheckBoxes = false;
                listView1.View = View.Details;
                int zeilen =Convert.ToInt32(textBox1.Text);
                int spalten =Convert.ToInt32(textBox2.Text);
                ListViewItem[] item = new ListViewItem[zeilen];
                listView1.Columns.Add("", -2, HorizontalAlignment.Left);            // Eckelement
                for (int i = 0; i < spalten ; i++)                                  // KopfZeile
                {
                    listView1.Columns.Add((i+1).ToString(), -2, HorizontalAlignment.Left);         
                }
                for (int i = 0; i < zeilen ; i++)
                {
                    item[i]= new ListViewItem( (i+1).ToString());
                    for (int j = 0; j < spalten ; j++)
                    {
                        item[i].SubItems.Add("");                   
                    }
                    listView1.Items.Add(item[i]);
                }                                                     
            }
    

    In die leeren Felder kann ich aber nichts schreiben.Geht das Überhaupt?
    Und wennn diese Methode nicht geht, wie macht man das effizenter?



  • Bei einer ListView kann nur die erste Spalte editiert werden (wie beim Windows Explorer). Benutze ein DataGridView stattdessen (und dann am besten gleich per DataBinding, z.B. mittels einer DataTable).



  • Danke für die Antwort. Jetzt habe ich ein Grund mich mit databinding zu befassen.


Anmelden zum Antworten