Vedr. spørgsmål til fejl i kolonne i datagrid?
Goddag eksperterJeg har fundet denne funktion:
private int LongestField (DataSet ds, string TableName, string ColumnName)
{
int maxlength = 0;
int tot = ds.Tables[TableName].Rows.Count;
string straux = "";
int intaux = 0;
Graphics g = dataGrid1.CreateGraphics();
// Take width one balnk space to add to the new width to the Column
int offset = Convert.ToInt32(Math.Ceiling(g.MeasureString(" ", dataGrid1.Font).Width));
for (int i=0; i<tot; ++i)
{
straux = ds.Tables[TableName].Rows[i][ColumnName].ToString();
// Get the width of Current Field String according to the Font
intaux = Convert.ToInt32(Math.Ceiling(g.MeasureString(straux, dataGrid1.Font).Width));
if (intaux > maxlength)
{
maxlength = intaux;
}
}// End of For Loop
return maxlength + offset;
}
og sat den ind i min kode således:
private void button17_Click(object sender, System.EventArgs e)
{
//Min conn string virker men er ikke med i eksemplet
string query = "SELECT a_id AS ID, a_navn AS Navn, a_loen AS Lon, af_navn AS Afdeling FROM ansat, afdeling WHERE a_afdeling=af_id";
MySqlDataAdapter adapter = new MySqlDataAdapter(query,conn);
DataSet ds = new DataSet();
DataView dv = new DataView();
adapter.Fill(ds);
int newwidth = LongestField(ds, "ansat", "Navn");
// Create new Table Style
DataGridTableStyle ts = new DataGridTableStyle();
dataGrid1.TableStyles.Clear();
dataGrid1.TableStyles.Add(ts);
// Assign New Width to DataGrid column
dataGrid1.TableStyles[0].GridColumnStyles["Navn"].Width = newwidth;
dataGrid1.DataSource = dv;
dataGrid1.ReadOnly = true;
}
Men når jeg køre programmet og det stykke her hvor koden fra funktionen indgår får jeg følgende fejl:
Additional information: Objektreferencen er ikke indstillet til en forekomst af et objekt.
Hvordan får jeg det til at virke således at den tilpasser bredden på den enkelte kollone i datagrid ud fra hvad den max længde er ud fra funktionen, uden at få den der fejl jeg får?
Håber nogen kan hjælpe.
Vh spottie
