Re: Invoke und Threads, die die GUI verändern
- From: "Akiono" <akionoster@xxxxxxxxxxxxxx>
- Date: 9 Jan 2007 05:28:26 -0800
Hallo Frank,
vielen Dank, es funktioniert nun.
Es hat etwas gedauert, bis ich verstanden habe, was der Unterschied
zwischen meiner und deiner Objecterstellung war.
Um es für andere, die ein ähnliches Problem haben zu erläutern hier
ein geänderter Codeabschnitt zur Verdeutlichung:
//Delegate mit einem ObjectArrray und einem String als Parameter
public delegate void ExcelImport(object[] WTGrenzen,string
Tabellenname);
//ObjectArray Erstellung, wobei auf bereits vorhandenes WTGrenzen Array
zurückgegriffen wird
object[] oWTGrenzen = new object[]
{WTGrenzen[0],WTGrenzen[1],WTGrenzen[2],WTGrenzen[3]};
//ParameterObject Array Erstellung, das zur Übergabe von der Invoke
Methode benötigt wird
object[] param = new object[2];
param[0] = oWTGrenzen;
param[1] = (object)Tabellenname;
//Aufruf der Invoke Methode
zufüllendesDatagrid.Invoke(new
ExcelImport(this.DataGridMitExcelDatenFüllen),param);
Und der Vollständikeit halber noch die durch den delegate Aufgerufene
Methode:
private void DataGridMitExcelDatenFüllen(object[] oWTGrenzen,string
Tabellenname)
{
WTGrenze[] WTGrenzen = new WTGrenze[oWTGrenzen.Length];
for(int i=0;i<WTGrenzen.Length;i++)
{
WTGrenzen[i] = (WTGrenze)oWTGrenzen[i];
}
DataRow myDR = this.dataSet1.Tables[Tabellenname].NewRow();
myDR[0] = WTGrenzen[0].Temperatur.ToString();
myDR[1] = WTGrenzen[0].Freibetrag.ToString();
this.dataSet1.Tables[Tabellenname].Rows.Add(myDR);
DataRow myDR2 = this.dataSet1.Tables[Tabellenname].NewRow();
myDR2[0] = WTGrenzen[1].Temperatur.ToString();
myDR2[1] = WTGrenzen[1].Freibetrag.ToString();
this.dataSet1.Tables[Tabellenname].Rows.Add(myDR2);
DataRow myDR3 = this.dataSet1.Tables[Tabellenname].NewRow();
myDR3[0] = WTGrenzen[2].Temperatur.ToString();
myDR3[1] = WTGrenzen[2].Freibetrag.ToString();
this.dataSet1.Tables[Tabellenname].Rows.Add(myDR3);
DataRow myDR4 = this.dataSet1.Tables[Tabellenname].NewRow();
myDR4[0] = WTGrenzen[3].Temperatur.ToString();
myDR4[1] = WTGrenzen[3].Freibetrag.ToString();
this.dataSet1.Tables[Tabellenname].Rows.Add(myDR4);
}
Nochmal vielen Dank und Grüsse
Akiono Wan
.
- References:
- Invoke und Threads, die die GUI verändern
- From: Akiono
- Re: Invoke und Threads, die die GUI verändern
- From: Frank Dzaebel
- Invoke und Threads, die die GUI verändern
- Prev by Date: Re: Datarow Problem
- Next by Date: Re: TcpListener kein Event bei Verbindungstrennung
- Previous by thread: Re: Invoke und Threads, die die GUI verändern
- Next by thread: PreFilterMessage
- Index(es):