Forums Neueste Beiträge
 

Dataset-DataGridView-C#-VS2005

25/06/2008 - 21:16 von Sandra Bayer | Report spam
Hallo,

ich habe ein Dataset.
ich habe ein DataGridView.

1 20.06.2008 Einnahmen 970€ Ausgaben 1100€
2 22.06.2008 Einnahmen 970€ Ausgaben 1100€
3 23.06.2008 Einnahmen 920€ Ausgaben 1700€
4 24.06.2008 Einnahmen 1970€ Ausgaben 1900€


Von außen wird jetzt bekannt gegeben, welches Datum aktiv ist, sein
soll.

- Idee von mir --
Ich fàrbe die komplette Zeile ein
Ich setze ein markantes Icon davor
Ich habe keine Ahnung wie ich das machen soll.

Weiß jemand Rat ? DANKE.


Grüße Sandra
 

Lesen sie die antworten

#1 Frank Dzaebel
26/06/2008 - 07:19 | Warnen spam
Hallo Sandra,

[DataSet, DataGridView, DataTable] ... Von außen wird jetzt bekannt
gegeben, welches Datum aktiv ist, sein soll.

- Idee von mir --
Ich fàrbe die komplette Zeile ein
Ich setze ein markantes Icon davor



Also, das DataGridView hat ja schon die Möglichkeit,
eine Zeile zu markieren. Im einfachsten Fall setzt man
einfach die CurrentCell neu. Ist der *SelectionMode auf
FullRowSelect wàre auch gleich die ganze Zeile markiert.
Bzgl. des Icons wird dann ja auch schon ein Dreieck angezeigt.
Weil ein DGV auch sortiert werden kann, nimmt man
z.B. den CurrencyManager, dessen List-Eigenschaft die
aktuell angezeigte Zeilenposition widerspiegelt.

Calc calc = new Calc(); // Das ist das DataSet.

private void Form1_Load(object sender, EventArgs e)
{
calc.EinAus.Rows.Add(1, new DateTime(2008, 6, 20), 970, 1100);
calc.EinAus.Rows.Add(2, new DateTime(2008, 6, 22), 970, 1100);
calc.EinAus.Rows.Add(3, new DateTime(2008, 6, 23), 920, 1700);
calc.EinAus.Rows.Add(4, new DateTime(2008, 6, 24), 1970, 1900);
dgv.DataSource = calc.EinAus;
//dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}

void SetzeGridPosAusDatum(DateTime date)
{
Calc.EinAusDataTable dt = dgv.DataSource as Calc.EinAusDataTable;
CurrencyManager cm = BindingContext[dt] as CurrencyManager;
int colDatum = calc.EinAus.DatumColumn.Ordinal;
for (int i = 0; i < cm.Count; i++)
{
DataRowView drv = cm.List[i] as DataRowView;
Calc.EinAusRow row = drv.Row as Calc.EinAusRow;
if (row.Datum.Date == date.Date)
{
dgv.CurrentCell = dgv[colDatum, i];
return; //cm.Position = i;
}
}
}

private void btnSetzen_Click(object sender, EventArgs e)
{
SetzeGridPosAusDatum(new DateTime(2008, 6, 23));
}


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

Ähnliche fragen