?
Ich habe ein DataGridView, welches als DataSource eine DataTable nutzt. In einer Spalte dieser DataTable sind Werte oder die Bezeichnungen "Pfeil hoch", "Pfeil runter" oder "Pfeil gleichbleibend" enthalten.
Die Werte sollen so, wie sie vorhanden sind dargestellt werden, die Bezeichnungen sollen durch entsprechende Pfeile ersetzt werden.
Leider sind meine bisherigen Versuche fehlgeschlagen.
Ich hatte versucht Bmp-Dateien über DataGridViewImageCell darzustellen.
Als zweite Möglichkeit wollte ich dann einfach die Bezeichnungen durch die entsprechenden Zeichen aus der Schriftart Wingdings ersetzen. Was auch teilweise zum Erfolg geführt hat.
Ich habe dazu einen neuen DataGridViewCellStyle erstellt, diesem habe ich die Schriftart Wingdings zugewiesen. Und dann mit folgendem Code jede Zeile durchgegangen.
for (int i=0; i<view->RowCount; i++)
{
if (view->Rows[i]->Cells[2]->Value->ToString() == "Pfeil hoch")
{
view->Rows[i]->Cells[2]->Sytle = CellStyleWingdings;
view->Rows[i]->Cells[2]->Value = "é";
}
}
Das eigenartige ist jetzt, wird das GridView aufgerufen zeigt er mir das "é" in der ursprünglichen Schriftart an. Klicke ich in die Zelle und kann diese nun editieren, zeigt er mir meinen Pfeil an. Verlasse ich die Zelle wieder, wechselt die Schriftart wieder zurück auf die ursprüngliche Schriftart.
Alternativ hatte ich anstatt der Zeile
view->Rows[i]->Cells[2]->Sytle = CellStyleWingdings;
auch jeweils eine dieser Zeilen getestet, leider mit dem gleichen Ergebnis
view->Rows[i]->Cells[2]->Style->ApplyStyle(CellStyleWingdings);
oder
view->Rows[i]->Cells[2]->Font = (gcnew System::Drawing::Font(L"Wingdings", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(0)));
Kann mir jemand sagen woran das liegt, oder einen Vorschlag machen, wie man das ganze besser lösen könnte?