VB MsFlexGrid eintragen

Hi Experten,

wie kann ich in ein MSFlexGrid einträge vornehmen, und dabei auch die zelle bestimmen, in die eingetragen werden soll?

Thx und Gruß Marcel

Hallo Marcel,

Im Private Sub grid_Click() musst Du zumaechst eine Textbox direkt ueber der gewuenschten Zelle plazieren und dann mit dem Wert der Zelle updaten:

z.B. textbox is txtInput und grid ist das Flexgrid

With txtInput
.Top = grid.Top + grid.CellTop
.Left = grid.Left + grid.CellLeft
.Width = grid.CellWidth
.Height = grid.CellHeight
End With

txtInput.Text = grid.Text

txtInput.Visible = True
txtInput.SetFocus
Update = True

  1. Wenn Du den Wert geaendert hast und von der Zelle wegklickst (Zelle also verlaesst) musst Du den Wert ins grid eintragen. Das machst Du im Sub grid_LeaveCell()

z.B. grid.Text = txtInput.Text
txtInput.Text = „“
txtInput.Visible = False

Update = False

Falls Du damit nicht zurecht kommst, lass es mich wissen

Gutes Gelingen,
Claudia

Hallo Claudia,

erst mal Danke, aber sehe ich das richtig, das ich dann nur in der ersten Zelle einen Eintrag machen kann?

Bei mir geht’s darum, daten aus einer Datei auszulesen (genauer gesagt MP3-Tags) und diese dann in eine Tabelle abzulegen:

Interpret | Titel | Album |
… |… | … |

usw.

dafür würde ich gerne jede Zelle speziell ansprechen, um evtl. auch noch einzelen vom User bearbeiten zu lassen.

Gruß Marcel

Hi!

erst mal Danke, aber sehe ich das richtig, das ich dann nur in
der ersten Zelle einen Eintrag machen kann?

Bei mir geht’s darum, daten aus einer Datei auszulesen
(genauer gesagt MP3-Tags) und diese dann in eine Tabelle
abzulegen:

Interpret | Titel | Album |
… |… | … |

usw.

dafür würde ich gerne jede Zelle speziell ansprechen, um evtl.
auch noch einzelen vom User bearbeiten zu lassen.

Die einfachste Methode, um Daten in eine Zelle zu bekommen (oder aus einer Zelle auszulesen) ist die Funktion „TextMatrix“ des MSFlexGrid.

Bsp:

MSFlexGrid1.TextMatrix(Zeile, Spalte) = Wert

Damit kannst du wahlfrei jede Zelle des MSFlexGrid ansprechen, ohne die Cursor-Position innerhalb des MSFlexGrid zu verändern, d.h. die ganzen Routinen, die evtl. unter EnterCell, LeaveCell, RowColChange oder SelChange stehen, werden nicht aktiviert.

Zum Ändern von Inhalten einer MSFlexGrid-Zelle gibt es verschiedene Möglichkeiten. Die von Claudia angeführte mit dem die jeweilige Zelle überlagernden Textfeld ist eine, eine andere wäre ein außerhalb des MSFlexGrid gelegtes Textfeld (das Prinzip von Tabellenkalkulationen wie Excel & Co.). Dritte Möglichkeit wäre das direkte Editieren in der jeweiligen Zelle, ist aber schwierig zu programmieren und optisch unschön, weil du kein Eingabe-Cursor-Zeichen (den senkrechten Strich) in der aktiven Zelle siehst.

Grüße
Heinrich

Super, genau das hab ich gesucht, thx. o.w.T.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Meine Loesung ist natuerlich nur brauchbar, wenn ein User was in das Grid eintragen soll.

Du hast bei deiner Fragestellung „…wie kann ich in ein MSFlexGrid einträge vornehmen“ ein ganz wichtiges Detail , naemlich, dass die Daten von einer Datei kommen, weggelassen.

Das ist nicht unbedeutend, wie Du siehst. Also bitte formuliere das naechste Mal deine Frage so praezise wie moeglich - dann koennen sich hilfsbereite Menschen (wie ich) naemlich 'ne Menge Zeit sparen.

Danke,
Claudia

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Och menno
Clauda,

stell dir doch mal vor wir wären alle perfekt und würden alles richtig machen, das wär doch langweilig oder? Und ich kann dich beruhigen, deine Version werde ich wohl auch brauchen *g*

Also noch ma besten Dank