Wie füllt man ein Datengrid in Windows zur Laufzeit in C#
Gezeigt wird ein Word Add-in, welches Daten aus Excel anzeigen soll und eine Auswahl zulassen soll.
In einem Word-Addin als Ribbonbar werden zusätzliche Elemente in der Regel als Windows Forms Element hinzugefügt.
Bei einem DatenGrid handelt es sich zunächst ebenfalls um ein DataGridView. Das Füllen eines Datengrids ist in Winforms und WPF ähnlich.
Betrifft:
VSTO Addin, Windows Forms Formular, WinForm, DataGridView, DataGridViewRow
Dynamisches Laden eines DataGridView zur Laufzeit. Programmatically loading a Grid
Daten-Grid mit C# geladen.
Hier in Word-Addin. Beim Klick auf einen Ribbonbar Button wird ein Form-Dialog Fenster geöffnet mit einer Datentabelle.
|
1 |
2 |
3 |
4 |
5 |
|
11 |
22 |
33 |
44 |
55 |
|
111 |
222 |
333 |
444 |
555 |
Design-View des Formulars
Das Formular in VSTO Addin wird als Windows Forms Formular geladen.
Das Datengrid wird zunächst über den Design-Editor in das Formular gezogen.
Daten-Grid füllen
DataGridView
Einstellen des DataGridViews
Spalten hinzufügen
Im ersten Schritt werden per programm die Spalten hinzugefügt zur Laufzeit
dataGrid_Excel.Columns.Add("column_01", "A"); dataGrid_Excel.Columns.Add("column_02", "B"); dataGrid_Excel.Columns.Add("column_03", "C"); dataGrid_Excel.Columns.Add("column_04", "D"); dataGrid_Excel.Columns.Add("column_05", "E"); |
Die einzelnen Daten-Reihen können im Beispiel 1 direkt als Texte hinzufügt werden
dataGrid_Excel.Rows.Add("111","222", "333", "444", "555"); |
Beim Arbeiten mit dynamischen Daten kann man die Parameter als Variablen übergeben
dataGrid_Excel.Rows.Add(cell_Values[0],cell_Values[1], cell_Values[2], cell_Values[3], cell_Values[4]); |
frmExcel_Data.cs
Programmierung des DataGridView
using System;
using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel;
namespace addin_Excel_01 { public partial class frmExcel_Data : Form { public frmExcel_Data() { InitializeComponent(); }
private void frmExcel_Data_Load(object sender, EventArgs e) { //-----------------< load_Excel() >----------------- dataGrid_Excel.AllowUserToAddRows = false;
//--< define Columns >-- dataGrid_Excel.Columns.Add("column_01", "A"); dataGrid_Excel.Columns.Add("column_02", "B"); dataGrid_Excel.Columns.Add("column_03", "C"); dataGrid_Excel.Columns.Add("column_04", "D"); dataGrid_Excel.Columns.Add("column_05", "E"); //--</ define Columns >--
//----< DataRow1 >---- //--< get Values >-- String[] cell_Values = new String[5]; cell_Values[0] = "1"; cell_Values[1] = "2"; cell_Values[2] = "3"; cell_Values[3] = "4"; cell_Values[4] = "5"; //--</ get Values >--
//-< add_Data_Row >- //< add > int iRow = dataGrid_Excel.Rows.Add(new DataGridViewRow()); DataGridViewRow row = dataGrid_Excel.Rows[iRow]; //</ add > //< fill > row.Cells[0].Value = cell_Values[0]; row.Cells[1].Value = cell_Values[1]; row.Cells[2].Value = cell_Values[2]; row.Cells[3].Value = cell_Values[3]; row.Cells[4].Value = cell_Values[4]; //</ fill > //-</ add_Data_Row >- //----</ DataRow1 >----
//----< DataRow2 >---- //--< get Values >-- cell_Values = new String[5]; cell_Values[0] = "11"; cell_Values[1] = "22"; cell_Values[2] = "33"; cell_Values[3] = "44"; cell_Values[4] = "55"; //--</ get Values >--
//-< add >- dataGrid_Excel.Rows.Add(cell_Values[0],cell_Values[1], cell_Values[2], cell_Values[3], cell_Values[4]); //-</ add >- //----</ DataRow2 >----
//----< DataRow3 >---- //-< add >- dataGrid_Excel.Rows.Add("111","222", "333", "444", "555"); //-</ add >- //----</ DataRow3 >----
//-----------------< load_Excel() >----------------- } } }
|
Aufruf Formular
Das Formular wird aufgefufen mit der Formular-Bezeichnung unter dem VSTO Addin Projekt
frmExcel_Data frm = new frmExcel_Data(); frm.Show(); |
In der Ribbonbar wird das Windows Forms Formular durch .Show() aufgerufen und kann dann wie ein vollwertiges Windows Forms Formular mit allen Windows Funktionen arbeiten
Winforms