vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder 
Autor: Woellmi
Datum: 27.10.16 21:14

Hallo Dieter,

ich arbeite mit dem sevDataGrid3 im ListMode und erlaube
mittels
oGrid.AllowColumnReorder=TRUE
dass der Anwender die Spalten neu anordnen kann.
Z.B. die 3. Spalte an die Position 1 ziehen.

Wenn ich nun eigene Eingabemasken über das Grid lege, nutze ich
oGrid.CellLeft(nCol)
um mein EingabeControl an die korrekte Position über das Grid zu legen.

With oGRD
  If .RowIsVisible(nRow) Then
     oTBOX.Width = .Columns(nCol).Width
     oTBOX.Height = .RowHeight
     oTBOX.Move .CellLeft(nCol) - f_nGetSevGRD3FixColsOffset(oGRD) + XOffset, _
                .CellTop(nRow, nCol) + YOffset
  End If
End With
Das funktioniert alles prima, solange die Spalten nicht verschoben wurden.

Nachdem ich die Spalten verschoben habe und z.B. die Spalte 1 an die Position
4 verschoben habe und mein Eingabefeld über die "neue" Spalte 1 platzieren will:
nCol=1  ==> .CellLeft(nCol)
'die "1" wird natürlich als Parameter übergeben ;-)
With oGRD
  If .RowIsVisible(nRow) Then
     oTBOX.Width = .Columns(1).Width
     oTBOX.Height = .RowHeight
     oTBOX.Move .CellLeft(1) - f_nGetSevGRD3FixColsOffset(oGRD) + XOffset, _
                .CellTop(nRow, 1) + YOffset
  End If
End With
dann gibt ".CellLeft(nCol)" die Position der "alten Spalte 1, nun also Spalte 4
zurück. Mein Eingabefeld liegt genau über der Zelle in der Neuen Spalte 4,
die davor Spalte 1 war.

D.h. es sieht so aus, dass die ursprünglische Spalte beim Verschieben mitwandert und
nicht neu vergeben wird.

Ist dies so gewollt?
Wenn ja, wie ist es möglich die Col-Eigenschaft der neuen ersten Spalte zu ermitteln,
oder eine Neunummerierung zu veranlassen?

Ich hoffe mich verständlich ausgedrückt zu haben

Meine Absicht ist es in einem speziellen Eingabemodus einen Referenzwert
immer an der ersten Spalte einzugeben. Dieser wird dann in alle anderen Spalten (Rechts von der ersten) übernommen.
Dazu kann der Anwender aus einer Vielzahl von verfügbaren Spalten eine auswählen und an
die erste (Linke) Position verschieben. (=> wegen der Übersicht)
Wird nun der spezielle Eingabemodus, nicht über DoppelKlick auf die betreffende Zelle, sondern
über Tastenkürzel aktiviert, gebe ich die absolute Spalte, also eine "1" an.
Dann wird die Eingabemaske der gewählten Zeile immer an der "Linken" also der ersten sichtbaren
Spalte angezeigt.

Wie gesagt vor dem Spaltenverschieben kein Problem! Mit dem Verschieben wandert die
Col-Eigenschaft mit der verschobene Spalte mit. (????)

Vielen Dank schon jetzt.

In der Hilfe habe ich leider nichts passendes gefunden.

Tschaui
Woellmi

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder2.227Woellmi27.10.16 21:14
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder1.034ModeratorDieter28.10.16 07:43
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder955Woellmi28.10.16 08:35
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder1.098Woellmi28.10.16 10:16
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder1.244ModeratorDieter28.10.16 10:20
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder1.057Woellmi28.10.16 11:56
Re: sevDataGrid3 und .CellLeft(nCol) nach ColumnReorder892Woellmi10.11.16 21:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel