PDA

View Full Version : [VB6] Posizionare pulsante su una datagrid


OrcaAssassina
28-02-2006, 09:47
Ho creato un pulsante e una combo e tramite il codice li posiziono nella datagrid

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Dim colonnacombo As Integer

Note.Visible = True
' imposto larghezza combo
Note.Width = 600 'DataGrid1.Columns("Note").Width
'imposto posizione sinistra combo
Note.Left = DataGrid1.Columns(1).Left + 150
' imposto posizione top combo
Note.Top = DataGrid1.Top + 50 + DataGrid1.RowHeight + (DataGrid1.Row * DataGrid1.RowHeight)
Note.Height = DataGrid1.RowHeight

colonnacombo = 2
If DataGrid1.col = colonnacombo Then
DataGrid2.Visible = True
DataGrid2.Left = DataGrid1.Columns(2).Left + 150
DataGrid2.Top = DataGrid1.Top + 10 + DataGrid1.RowHeight + (DataGrid1.Row * DataGrid1.RowHeight)
Else
DataGrid2.Visible = False
End If

End Sub

Tutto funziona solo che ho questo problema.
Se mi sposto con la barra di scorrimento il pulsante "Note" non rimane fermo nella colonna in cui l'ho impostato,a tende a scorrerre ed essere sempre visualizzato nella parte sinistra.
Lo stesso vale per la combo, se ci clicco lei sposta la proprietà a .visible = True, se a questo punto mi sposto con la barra anche lei mi segue andando sopra le altre caselle della datagrid

C'è un modo per ancorarli solo a quella colonna e basta????

Ciao e grazieeeeeeeee

okay
28-02-2006, 10:02
Ho creato un pulsante e una combo e tramite il codice li posiziono nella datagrid

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Dim colonnacombo As Integer

Note.Visible = True
' imposto larghezza combo
Note.Width = 600 'DataGrid1.Columns("Note").Width
'imposto posizione sinistra combo
Note.Left = DataGrid1.Columns(1).Left + 150
' imposto posizione top combo
Note.Top = DataGrid1.Top + 50 + DataGrid1.RowHeight + (DataGrid1.Row * DataGrid1.RowHeight)
Note.Height = DataGrid1.RowHeight

colonnacombo = 2
If DataGrid1.col = colonnacombo Then
DataGrid2.Visible = True
DataGrid2.Left = DataGrid1.Columns(2).Left + 150
DataGrid2.Top = DataGrid1.Top + 10 + DataGrid1.RowHeight + (DataGrid1.Row * DataGrid1.RowHeight)
Else
DataGrid2.Visible = False
End If

End Sub

Tutto funziona solo che ho questo problema.
Se mi sposto con la barra di scorrimento il pulsante "Note" non rimane fermo nella colonna in cui l'ho impostato,a tende a scorrerre ed essere sempre visualizzato nella parte sinistra.
Lo stesso vale per la combo, se ci clicco lei sposta la proprietà a .visible = True, se a questo punto mi sposto con la barra anche lei mi segue andando sopra le altre caselle della datagrid

C'è un modo per ancorarli solo a quella colonna e basta????

Ciao e grazieeeeeeeee




è naturale. La combo e il pusante rimangono alle loro coordinate mentre la griglia si sposta con la barra di scorrimento.

Metti la combo e il pusante al di fuori del datagrid oppure nel datagrid sulla proprietà puoi inserire una sorta di titolo all'inizio prima delle righe e colonne sul titolo del datagrid ci metti la combo e il pulsante, che copriranno il titolo del datagrid a questo punto il pulsante e la combo rimarranno sul titolo e non daranno fastidio mentre scorri il datagrid facendo vedere la prima colonna dela datagrid per bene e scorrendo tutte le altre senza che siano sovrapposte dal pulsante o la combo.

... ma a questo punto metti il pulsante e la combo in un controlle frame al di fuori del datagrid.

OrcaAssassina
28-02-2006, 10:13
è naturale. La combo e il pusante rimangono alle loro coordinate mentre la griglia si sposta con la barra di scorrimento.

Metti la combo e il pusante al di fuori del datagrid oppure nel datagrid sulla proprietà puoi inserire una sorta di titolo all'inizio prima delle righe e colonne sul titolo del datagrid ci metti la combo e il pulsante, che copriranno il titolo del datagrid a questo punto il pulsante e la combo rimarranno sul titolo e non daranno fastidio mentre scorri il datagrid facendo vedere la prima colonna dela datagrid per bene e scorrendo tutte le altre senza che siano sovrapposte dal pulsante o la combo.

... ma a questo punto metti il pulsante e la combo in un controlle frame al di fuori del datagrid.


Ti dici di eliminare il pulsante e di visualizzarlo in GRIGLIA, ma di lasciarlo fisso fuori????
Se uno gli serve, preme sopra a NOTE e gli apre la funzione legata al quel pulsante.

Tu cosi dici????

okay
28-02-2006, 10:57
Ti dici di eliminare il pulsante e di visualizzarlo in GRIGLIA, ma di lasciarlo fisso fuori????
Se uno gli serve, preme sopra a NOTE e gli apre la funzione legata al quel pulsante.

Tu cosi dici????

si è meglio così come dici sopra.
li metti esterni e ti prendi l'id del click sulla griglia poi premi il pulsante preni l'id dell'elemento selezionato dalla griglia e nel pulsante fai l'azione su quell'id.

senza impazzire troppo.

se vuoi una cosa graficamente bella da vedere metti il pulsante e la combo all'interno di un controllo frame.. solo per eleganza della grafica ma al di fuori del datagrid.

OrcaAssassina
28-02-2006, 11:57
Ok grazieeeeeee