Daten-Grid
laden in C#. Beispiel hier in WinForms, VSTO Add-in
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