| |
Fragen & Antworten rund um sev-KomponentensevDataGrid3 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 | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|