title image


Smiley arbeiten mit flexgrid
Hallo,

ich habe noch nie mit MSFlexGrid gearbeitet. Ich muss Daten aus einer Datei in eine vorgegebene Tabelle laden und diese Daten müssen auch dort bearbeitet werden können. Habe mir aus verschiedenen Quellen Code rauskopiert, damit ich Werte in die Tabelle eintragen kann. Dabei habe ich eine TextBox über die Zellen gelegt. Mein Problem ist, dass wenn ich die 1.Zelle/1.Zeile anklick, das diese nicht aktiviert wird. Erst beim Klicken auf andere Zellen wird die TextBox aktiviert. Ich würde es gerne ändern, weiss aber nicht wie. Ausserdem sollte es auch möglich sein, durch drücken auf tab,dass auf die nächste Zelle gesprungen wird und wenn das Ende der Zeile erreicht wird soll eine nächste Zeile automatisch der Tabelle hinzugefügt werden. Kann mir jemand helfen oder weiss mir einen guten Tip.



hier meinen code

[code]Public Sub MSFlexGridCrossSectionClipboard(ByRef grd As MSFlexGrid, _

Optional ByRef ColSep As String = vbTab, _

Optional ByRef RowSep As String = vbNewLine, _

Optional ByRef BeginText As String, _

Optional ByRef EndText As String)



Clipboard.Clear

Clipboard.SetText BeginText _

& MSFlexGridCrossSectionText(grd, ColSep, RowSep) _

& EndText

End Sub





Public Function MSFlexGridCrossSectionText(ByRef grd As MSFlexGrid, _

Optional ByRef ColSep As String = vbTab, _

Optional ByRef RowSep As String = vbNewLine _

) As String



'Deklarationen:

Dim Row As Long

Dim Col As Long

Dim RowText As String



With grd

'pass through all rows

For Row = MSFlexGridCrossSection.FixedRows To MSFlexGridCrossSection.Rows - 1



'pass through all cols

RowText = MSFlexGridCrossSection.TextMatrix(Row, MSFlexGridCrossSection.FixedCols)

For Col = MSFlexGridCrossSection.FixedCols + 1 To MSFlexGridCrossSection.Cols - 1

RowText = RowText & (ColSep & MSFlexGridCrossSection.TextMatrix(Row, Col))

Next Col



'add rows

MSFlexGridCrossSectionText = MSFlexGridCrossSectionText & (RowText & RowSep)



Next Row



End With 'grd



'cut the string of the result

MSFlexGridCrossSectionText = Left$(MSFlexGridCrossSectionText, Len(MSFlexGridCrossSectionText) - Len(RowSep))

End Function





Private Sub SSTabNew_GotFocus()

Dim s As String

Dim i As Integer



MSFlexGridCrossSection.Row = 1

MSFlexGridCrossSection.Col = 1



'puts the width of the cols

MSFlexGridCrossSection.ColWidth(0) = 400

MSFlexGridCrossSection.ColWidth(1) = 1000

MSFlexGridCrossSection.ColWidth(2) = 1000

MSFlexGridCrossSection.ColWidth(3) = 1000

MSFlexGridCrossSection.ColWidth(4) = 1000

s$ = "|Name|Distance|% Reach|Water Level;|"

MSFlexGridCrossSection.FormatString = s$





'transfers the values of the selected cells to the Clipboard

Clipboard.SetText MSFlexGridCrossSection.Clip



'pastes these cell values to another area of the control

MSFlexGridCrossSection.Clip = Clipboard.GetText



End Sub





Private Sub MSFlexGridCrossSection_EnterCell()

'make sure the user doesn't attempt to edit the fixed cells

If MSFlexGridCrossSection.MouseRow = 0 Or MSFlexGridCrossSection.MouseCol = 0 Then

Text1.Visible = True

Exit Sub

End If



'clear contents of current cell

Text1.Text = ""



'place Textbox over current cell

Text1.Visible = False

Text1.Top = MSFlexGridCrossSection.Top + MSFlexGridCrossSection.CellTop

Text1.Left = MSFlexGridCrossSection.Left + MSFlexGridCrossSection.CellLeft

Text1.Width = MSFlexGridCrossSection.CellWidth

Text1.Height = MSFlexGridCrossSection.CellHeight



'assign cell's contents to TextBox

Text1.Text = MSFlexGridCrossSection.Text



'move focus to TextBox

Text1.Visible = True

Text1.SetFocus

End Sub



Private Sub MSFlexGridCrossSection_LeaveCell()

MSFlexGridCrossSection.Text = Text1.Text

End Sub

[/code]

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: