Newsgroup: it.comp.lang.visual-basic
Titolo: FlexGrid

Ragazzi aiuto....
ho utilizzato per la 1° volta una Flex Grid
e ho riempito le celle, con alcuni dati ( non l'ho collegata a nessun
database)
Il problema è: Come faccio a mettermi in una cella ( fin qui ci arrivo )
per poterne
modificare il contenuto ? (vorrei in pratica che la cella si comportasse ne
più ne meno che un text box) 
ho al massimo simulato il tutto con:
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
    MSFlexGrid1.Text = MSFlexGrid1.Text & Chr(KeyAscii)
End Sub
 Posso ottenere una "FLEXibilità" maggiore di questa ????
Grazie a quanti vorranno rispondere.
il mio indirizzo di mail è
nscogn...@etnoteam.it

 ho al massimo simulato il tutto con:
Io ho creato un TextBox che posiziono con la sub PosizionaTxtEdit sulla
cella da modificare.
Poi gestisco gli eventi KeyDown e KeyPress del TextBox per verificare la
modifica del contenuto di una cella o la pressione di un tasto di
direzione.
Riporto le funzioni relative alla gestione nel mio programma. Si tratta di
un vecchio programma che non ricordo nemmeno a cosa serve. Se ti serve
batti un colpo che me lo riguardo per ricordarmi e per spiegarti meglio.
Ciao, Stefano
Private Sub MSFlexGrid1_GotFocus()
  PosizionaTxtEdit
End Sub
Sub PosizionaTxtEdit()
  With MSFlexGrid1
  txtEdit.Move .Left + .CellLeft + 10, .Top + .CellTop + 10, .CellWidth -
20, .CellHeight - 20
  txtEdit.Text = .Text
  End With
  txtEdit.SelStart = 0
  txtEdit.SelLength = 999
  txtEdit.SetFocus
End Sub
Private Sub txtEdit_KeyDown(KeyCode As Integer, Shift As Integer)
  With MSFlexGrid1
  Select Case KeyCode
    Case vbKeyLeft
      If NumeroCorretto Then
        If .Col > 1 Then
          .Col = .Col - 1
        Else
          .Col = 5
          If .Row > 0 Then .Row = .Row - 1 Else .Row = 9
        End If
        PosizionaTxtEdit
      End If
      KeyCode = 0
 
    Case vbKeyRight, vbKeyReturn
      If NumeroCorretto Then
        If .Col < 5 Then
          .Col = .Col + 1
        Else
          .Col = 1
          If .Row < 9 Then .Row = .Row + 1 Else .Row = 0
        End If
        PosizionaTxtEdit
      End If
      KeyCode = 0
 
    Case vbKeyUp
      If NumeroCorretto Then
        If .Row Then
          .Row = .Row - 1
        Else
          .Row = 9
          If .Col > 1 Then .Col = .Col - 1 Else .Col = 5
        End If
        PosizionaTxtEdit
      End If
      KeyCode = 0
 
    Case vbKeyDown
      If NumeroCorretto Then
        If .Row < 9 Then
          .Row = .Row + 1
        Else
          .Row = 0
          If .Col < 5 Then .Col = .Col + 1 Else .Col = 1
        End If
        PosizionaTxtEdit
      End If
      KeyCode = 0
 
  End Select
  End With
End Sub
Private Sub txtEdit_KeyPress(KeyAscii As Integer)
  If KeyAscii = vbKeyReturn Then KeyAscii = 0
End Sub




piů ne meno che un text box) 
Credo che sarebbe meglio utilizzare un controllo tipo DBGrid o
qualcuno dei suoi cugini forniti dalla Apex (
www.apexsc.com
).
Si tratta di una griglia destinata all'uso con un data control, ma si
puň anche utilizzare in UnBound Mode, in cui non c'č collegamento
automatico ad un data control.
C'č del codice da scrivere ma si ottengono buoni risultati.
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "NOSP" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "NOSP" from e-mail address to write me (spammers...)
--------------------------------------------------------------------