In diesem Code erstelle ich nur wenige DataGridViews. Die Anzahl dieser hängt von der Datei ab, die bei jedem Start der Anwendung unterschiedlich ist, ebenso die Anzahl der DataGridViews.Zugriffsobjekt, das mit einer anderen Methode erstellt wurde C#
Wie kann ich auf bestimmte dataGridView grid[i]
zugreifen und ändern, von welchem Ereignis Form1_UserAddedRow
in dieser Methode aufgerufen wurde?
Code:
public void Form1_Load(object sender, EventArgs e)
{
string[] lines = System.IO.File.ReadAllLines(@"..\..\Base.txt");
int diet_num = 0;
int grid_num = 0;
foreach (string x in lines) diet_num++;
grid_num = (diet_num/Constant.DATAGRID_DIETS_IN_GRID) + 1;
DataGridView[] grid = new DataGridView[grid_num];
for (int i = 0; i < grid_num; i++)
{
grid[i] = new DataGridView();
grid[i].Tag = i;
grid[i].Parent = this;
grid[i].Location = new Point(12, 12 + (8 + Constant.DATAGRID_ROW_HEIGHT * 2) * i);
grid[i].Visible = true;
grid[i].RowHeadersVisible = false;
grid[i].Height = Constant.DATAGRID_ROW_HEIGHT * 2;
grid[i].Width = Constant.DATAGRID_COLUMN_SIZE * Constant.DATAGRID_DIETS_IN_GRID + 3;
grid[i].UserAddedRow += Form1_UserAddedRow;
}
this.Width = Constant.DATAGRID_COLUMN_SIZE * Constant.DATAGRID_DIETS_IN_GRID + 40;
foreach (string x in lines)
{
DataGridViewColumn col = new DataGridViewTextBoxColumn();
col.Width = Constant.DATAGRID_COLUMN_SIZE;
col.HeaderText = x;
int colIndex = grid[0].Columns.Add(col);
}
}
private void Form1_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
//I want to access grid[i] and modify it here.
}
Aber kann ich auf den ganzen Datagridview zugreifen? Edit: Oh mein, ich kann über diese Zeile auf Datagridview zugreifen. Vielen Dank, geschätzt :) –
Siehe oben Antwort. Sie sollten in der Lage sein, das Argument "sender" in Ihrem Event-Handler zu verwenden. – PentaPenguin