Laden...
_
_tb_
myCSharp.de - Member
6
Themen
416
Beiträge
Letzte Aktivität
vor 18 Jahren
Dabei seit
18.01.2005
Alter
40
Erstellt vor 18 Jahren

Hallo,

versuchs mal mit auf DesignMode zu prüfen.

cu, tb

Erstellt vor 18 Jahren

Hallo thomassa,

In den Tablesstyles DataGrid gibts noch die GridColumnStyles. Diese besitzen eine Headertexteigenschaft, welche genau die Funktionalität bietet die du suchst.

cu, tb

Erstellt vor 18 Jahren

Hi,

im Prinzip genau das. Nur musst du auch noch eine DataGridViewColumn ableiten und deinen eigenen CellType zurückgeben. Ist also auch kein Aufwand.

cu, tb

Erstellt vor 18 Jahren

Hallo netter_mann99,

das ist dann eigentlich auch gar nicht mehr so schwer (wenn man's erst mal weiß). Angenommen "index" ist der Index der Zeile im DataGridView, dann kannst du mit

DataRow row = ((DataRowView)dgv.Rows[index].DataBoundItem).Row;
int origIndex = row.Table.Rows.IndexOf(row);

zum einen die Zeile in der Tabelle direkt bzw. ihren Index bestimmen.

cu, tb

Erstellt vor 18 Jahren

Hallo,

Oder du schreibst dir eine eigene Klasse welche die gleichen Interfaces wie DataView implementiert und delegierst alle Methoden genau so an den DataView weite. Einzige Ausnahme, in der Count-Eigenschaften gibst du maximal 70 zurück.

Diese Lösung hat zwar einen hohen Schreibaufwand, ist aber im Grunde sehr einfach zu realisieren. Dem DataGridView wird praktisch vorgegaukelt, es gäbe höchstens 70 Einträge.

cu, tb

Erstellt vor 18 Jahren

Hallo Raiser,

leider ist es im DataGridView (im Gegensatz zum alten Datagrid) nicht mehr möglich, ständig Controls darauf zu platzieren. Das Control wird ausschließlich angezeigt, wenn sich die Zelle im Editiermodus befindet. Daher diese 'Minimal'-Buttons, welche von der Zelle selbst gezeichtet werden. Dies hat vor allem Performancegründe, aber leider auch die Nachteile, dass man keine vollwertigen Controls zur Verfügung hat.

D.h. im Klartext du musst die Buttons, diesmal inklusive Hintergrundbild, selbst zeichnen. 8o. Dafür musst du von der Zelle selbst ableiten und die Paintmethode überschreiben.

Zum wechseln des Cursors musst du noch die MouseEnter und MouseLeave Methoden überschreiben und den Cursor direkt im DataGridView setzen (Zumindest hab ich jetzt keine Cursoreigenschaft in der Zelle entdeckt.)

hoffe das hilft dir erstmal weiter.

cu, tb

Erstellt vor 18 Jahren

Hallo FZelle,

erstens bewirkt SuspendLayout imho nur dass ChildControls nicht neu angeordnet werden.

zweitens kann eine ExpressionColumn nur Werte aus der gleichen Zeile zur Berechnung heranziehen, nicht aber Werte verschiedener Zeilen addieren.

cu, tb

Erstellt vor 18 Jahren

Hallo,

ganz anders. Da beim Sortieren nicht die Tabelle direkt umsortiert wird, sondern nur ein View darauf, würde es reichen direkt auf der Tabelle zu operieren. Dann kann dir die ganze Sortierungsgeschichte egal sein. Ansonsten kannst du die Spalten auch jeweils manuell sortieren, was allerdings wesentlich mehr Aufwand bedeutet.

cu, tb

Erstellt vor 18 Jahren

Hallo kleines_eichhoernchen,

das Format welches du darstellst, soll vermutlich CSV entsprechen. Nun gibt es in CSV die möglichkeit die Daten mit "" zu umschließen. Excel z.B. erkennt dann das Komma als Textinhalt. In deinem Programm könntest du dann einfach die Auftreten von " zählen und nur bei gerader Anzahl das Komma als Trenner interpretieren.

Von deiner Variante würd ich absehen. Man kann sicher immer Fälle konstruieren, bei denen das Komma falsch interpretiert wird.

cu, tb

Erstellt vor 18 Jahren

Hallo SoHeLL,

Unterabfragen würde ich vermeiden wenn es nur geht. Wenn du nämlich 10.000 Autos in deiner Tabelle hast, wird die Variante sehr langsam.

Eine Alternative wäre:

SELECT k.autoid from kaufe k
LEFT OUTER JOIN verkaufe v ON k.autoid = v.autoid
WHERE v.autoid IS NULL

Das gibt dir alle Auto-IDs aus der Käufetabelle zurück, die in Verkäufe keinen JOIN-Partner haben.

[EDIT]
Du willst also ALLE gekauften Autos erhalten? Dann rufst du einfach nur die aus der Käufetabelle ab und ignorierst die Verkäufe völlig.
[/EDIT]

cu, tb

10 von 416 Beiträgen