Re: DataGridRowView.ContextMenuStrip

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Hallo Lutz,

Lutz Elßner <www.vb-hosting.de> schrieb ...
ich bin überrascht dass du dich mit "so was" auch beschäftigst..

Derzeit beschäftigt mich .NET (allerdings meist in C#) mehr
als der SQL Server.

Für das DataGridView habe allerdings derzeit noch nicht
viel Zeit gefunden.

Ich nehme an dass Microsoft das DataGridView entwickelt hat um es in
der eigenen Software zu benutzen.

Naja, eher um zumindest etwas zu bieten, was den kommerziellen
Produkten nahe kommt.

Und wundere mich dass ich die
einfachsten Dinge nicht hinbekomme. Löschen einer Row mit der DEL
Taste funktioniert ja von alleine, nun will ich mit der rechten
Maustaste über dieses Menü löschen. Das ist alles.

Soweit ich das beurteilen kann wäre es am saubersten - gleiche
Ereignisbehandlung usw. - durch eine abgeleitetes DataGridView
hinzukriegen.
Aus dem simplen Grund, weil man nur so auf die protected
Methode "ProcessDeleteKey" Zugriff hat.
Das gilt auch für andere Tastatur-Befehle.

Dein zweites Beispiel funktioniert fast. Allerdings wird die Maus
zwei mal betätigt. Erst in der richtigen Cell die rechte Maustaste.
Dann muss man die Maus im Menü bewegen und über dem richtigen
Menüpunkt die linke Maustaste klicken. Und davon kommen die
Koordinaten. Die sind dann unter Umständen nicht mehr in der Cell.
Vielleicht in einer falschen Cell oder auch außerhalb vom Formular.

Das kann ich so nicht nachvollziehen.
Wobei ich hier zum Testen ein DataGridView mit Standardeinstellungen
verwendet habe.

Könntest Du das mal genauer beschreiben?

Methode 1 - via CellChanged Event - hat allerdings den seltsamen
Effekt, das bei nur teilweise sichtbaren Zeilen der übergebene RowIndex
nicht stimmt (und auch ein Click über den Überschriften) das Ereignis auslöst.
Da es wäre wohl besser auf das MouseDown Event mit HitTestInfo
wie in Methode 2 zu verwenden.

Allerdings das RowTemplate und nun gibt es viele Rows..

Vom Einsatz via RowTemplate wird im übrigen abgeraten:
http://msdn2.microsoft.com/de-de/library/ha5xt0d9.aspx
Empfohlene Vorgehensweisen für das Skalieren des DataGridView-
Steuerelements in Windows Forms

Gruss
Elmar

.



Relevant Pages

  • Re: DataGridRowView.ContextMenuStrip
    ... Erst in der richtigen Cell die rechte Maustaste. ... Wobei ich hier zum Testen ein DataGridView mit Standardeinstellungen ... der Code hat aber die vom Linksklick. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: DataGridView Enter Key
    ... ProcessDialogKey method in the DataGridView, that is where the Enter key was ... is that the DataGridView key events are not being raised, because the cell ... trap the Enter key when the current cell in edit mode. ... press the Enter key, the KeyDown, KeyPress and KeyUp events are raised in ...
    (microsoft.public.dotnet.framework.windowsforms.controls)
  • Re: DataGridView, updating values and Resetbindings
    ... There is a form which contains nothing but a DataGridView, ... The values are there and if I select a cell, ... In case the resetBindings() call is correct, ... that each call automatically selects a cell, the old selection is ...
    (microsoft.public.dotnet.framework.windowsforms.controls)
  • DataGridView click top left cner
    ... DataGridView.HitTestInfo hit = dgv.HitTest; ... Datagridview - how to identify Top Left Corner Select All cell? ... When clicking on the Top Left Corner SelectAll cell, ...
    (microsoft.public.dotnet.languages.vb)
  • RE: IDataGridViewEditingControl validation
    ... from leaving the current cell if the entered value is not valid, ... subscribe the CellValidating event of the referenced DataGridView within ... // add a new property called Value, which is of type DateTime ... public DataGridView EditingControlDataGridView ...
    (microsoft.public.dotnet.framework.windowsforms.controls)