Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Digitare dati direttamente in una Msflexgrid, però...

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Digitare dati direttamente in una Msflexgrid, però...

Postdi piter123 » 02/12/08 12:09

Salve, di seguito vi riporto esempio di come ovviare al problema di non poter digitare dati diretta su una flexgrid (esempio trovato su internet e poi rivisto)

creata in una form una msflexgrid1 e una text1 il codice da copiare è il seguente (allego anche progettino già pronto) :
Ho solo un problema, dopo aver digitato il dato per confermarlo ( e trasferirlo nella msflexgrid1) con il tasto "invio" viene emesso automaticamente un fastidioso beep, è possibile eliminarlo?
Codice: Seleziona tutto
Private Sub Form_Load()
    MSFlexGrid1.Rows = 10
    MSFlexGrid1.Cols = 2
    MSFlexGrid1.ColWidth(0) = 0
    MSFlexGrid1.RowHeight(0) = 0
End Sub

Private Sub MSFLEXGRID1_KeyPress(KeyAscii As Integer)
    Call VISUALIZZA_TEXTBOOK
        'SCRIVE SULLA TEXTBOX IL CARATTERE BATTUTO
         Text1.Text = Chr(KeyAscii)
         Text1.SelStart = Len(Text1.Text)  'SI POSIZIONA ALLA FINE DELLA STRINGA TEXT1
End Sub

Public Function VISUALIZZA_TEXTBOOK()
    'CREA UNA TEXT1 DOVE SCRIVERE IL DATO
    With Text1
        .Visible = True
        .Move MSFlexGrid1.Left + MSFlexGrid1.CellLeft, MSFlexGrid1.Top + MSFlexGrid1.CellTop - 10, _
         MSFlexGrid1.CellWidth - 8, MSFlexGrid1.CellHeight - 10
        .SetFocus
        .Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col)
        .SelStart = 0
        .SelLength = 999
        .Font = MSFlexGrid1.Font
        .FontBold = MSFlexGrid1.FontBold
        .FontSize = MSFlexGrid1.FontSize
    End With
End Function

Private Sub TEXT1_KeyPress(KeyAscii As Integer)
    'SE PREMUTO IL TASTO "INVIO" RIPORTA LA STRINGA DELLA TEXT1 NELLA CELLA DELLA MSFLEXGRID1
    If KeyAscii = vbKeyReturn Then
        MSFlexGrid1.Text = Text1.Text
        Text1.Text = ""
        Text1.Visible = False
        MSFlexGrid1.SetFocus
    End If
End Sub
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Sponsor
 

Re: Digitare dati direttamente in una Msflexgrid, però...

Postdi piter123 » 02/12/08 13:53

Risolto. inserire la riga KeyAscii = 0 sull'evento pressione della text1 quando riconosce il tasto invio, come di seguito
Codice: Seleziona tutto
Private Sub TEXT1_KeyPress(KeyAscii As Integer)
    'SE PREMUTO IL TASTO "INVIO" RIPORTA LA STRINGA DELLA TEXT1 NELLA CELLA DELLA MSFLEXGRID1
    If KeyAscii = vbKeyReturn Then


    KeyAscii = 0


        MSFlexGrid1.Text = Text1.Text
        Text1.Text = ""
        Text1.Visible = False
        MSFlexGrid1.SetFocus
    End If
End Sub
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31


Torna a Programmazione


Topic correlati a "Digitare dati direttamente in una Msflexgrid, però...":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti