vs2005: DataGridView: ExtendLastCol

12/09/2008 - 19:46 von Alberto Luca | Report spam
Hallo NewsGroup,

ich suche eine Möglichkeit, die letzte Spalte eines Grids so zu setzen, dass
diese den restlichen Spread-bereich ausfüllt.

In FlexGrid heißt das Attribut: ExtendLastCol.

Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Frank Dzaebel
13/09/2008 - 07:37 | Warnen spam
Hallo Alberto,

ich suche eine Möglichkeit, die letzte Spalte eines Grids so zu
setzen, dass diese den restlichen Spread-bereich ausfüllt.
In FlexGrid heißt das Attribut: ExtendLastCol.



Beim DataGridView heisst das:

DataGridViewAutoSizeColumnMode.Fill;

Ggf. den DisplayIndex hier berücksichtigen:


private void Form1_Load(object sender, EventArgs e)
{
Width = 500; Height = 300;
DataGridView dgv = new DataGridView();
dgv.Width = 400;
dgv.Columns.Add("Spalte1", "Spalte1");
dgv.Columns.Add("Spalte2", "Spalte2");
dgv.Columns.Add("Spalte3", "Spalte3");
dgv.Columns["Spalte3"].DisplayIndex = 0;
LetzteSpalteAuffüllen(dgv);
dgv.Rows.Add(new object[] { "eins1", "zwei1", "drei1" });
dgv.Rows.Add(new object[] { "eins2", "zwei2", "drei2" });
dgv.Rows.Add(new object[] { "eins3", "zwei3", "drei3" });
Controls.Add(dgv);
}

private void LetzteSpalteAuffüllen(DataGridView dgv)
{
int maxDisplayIndex = -1;
DataGridViewColumn lastDisplayedColumn = null;
foreach (DataGridViewColumn col in dgv.Columns)
if (col.DisplayIndex > maxDisplayIndex)
{
maxDisplayIndex = col.DisplayIndex;
lastDisplayedColumn = col;
}
if (maxDisplayIndex >= 0)
lastDisplayedColumn.AutoSizeMode DataGridViewAutoSizeColumnMode.Fill; // <<<<== !
}

[Gewusst wie: Festlegen der Größenanpassungsmodi des
DataGridView-Steuerelements in Windows Forms]
http://msdn.microsoft.com/de-de/lib...04dhd.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen