Newsgroup: it.comp.lang.visual-basic
Titolo: [?] nome del form

Ho 2 datagrid(uguali) in due form diverse.
Ho quindi creato una sub che imposta i nomi delle colonne
Public Sub FlavImpManColHeaders(ToForm)
  ToForm.DGImpDettMan.Columns(0).Caption = "ID-flav"
  ToForm.DGImpDettMan.Columns(1).Caption = "MOTIVI CHIAMATA"
  ToForm.DGImpDettMan.Columns(1).Width = 4000
  ToForm.DGImpDettMan.Columns(0).Visible = False
End Sub
ToForm è la form che contiene il datagrid
Adesso vorrei sapere, se possibile :), come posso creare una select case
all'interno della sub in base alla form.
Per es.
Public Sub FlavImpManColHeaders(ToForm)
  ToForm.DGImpDettMan.Columns(0).Caption = "ID-flav"
  ToForm.DGImpDettMan.Columns(1).Caption = "MOTIVI CHIAMATA"
  ToForm.DGImpDettMan.Columns(0).Visible = False
    select case ToForm
        case "1"
            ToForm.DGImpDettMan.Columns(1).Width = 4000
        case 2
            ToForm.DGImpDettMan.Columns(1).Width = 2000
    end select
End Sub
Grazie, Alberto

 all'interno della sub in base alla form.
Io la farei diversamente:
Enum EDataGridConfig
    dgcDefault = 0
    dgcCol1Width2000 = 1
    dgcCol1Width4000 = 2
    dgcPippo = 4
    dgcPluto = 8
End Enum
Public Sub FlavImpManColHeaders(DGrid as DataGrid, Config As
EDataGridConfig)
    DGrid.Columns(0).Caption = "ID-flav"
    DGrid.Columns(1).Caption = "MOTIVI CHIAMATA"
    DGrid.Columns(0).Visible = False
    if (Config And dgcCol1Width4000) Then
        DGrid.Columns(1).Width = 4000
    End if
    if (Config And dgcCol1Width2000) Then
        DGrid.Columns(1).Width = 2000
    end If
End Sub
In questo modo non solo ti sleghi dal nome del form, ma anche dal nome della
griglia e puoi gestire una somma di varie configurazioni.
Ciao

 End Sub
E' una buona idea ma un pņ complessa (non posso gestirla con una select e ad
ogni parametro devo aggiungere enne If in base alle grid uguali presenti).
Ti ringrazio ugualmente, e rimando la richiesta:
Grazie, ugualmente


Invece a me come soluzione sembra ottima!
Comunque se te la vuoi cavare con meno codice potresti fare cosě: (anche se
non č una soluzione molto pulita!)
Public Sub FlavImpManColHeaders(ToForm)
  ToForm.DGImpDettMan.Columns(0).Caption = "ID-flav"
  ToForm.DGImpDettMan.Columns(1).Caption = "MOTIVI CHIAMATA"
  ToForm.DGImpDettMan.Columns(0).Visible = False
    select case ToForm.Name
        case Form1.Name
            ToForm.DGImpDettMan.Columns(1).Width = 4000
        case Form2.Name
            ToForm.DGImpDettMan.Columns(1).Width = 2000
    end select
'oppure
     ToForm.DGImpDettMan.Columns(1).Width =
IIF(ToForm.Name=Form1.Name,4000,2000)
End Sub
..funzione ma non č il massimo. Ti consiglio di ripensare alla prima
soluzione.
Ciao!

 Ti ringrazio ugualmente, e rimando la richiesta:
Ok, basta perdere un attimo in flessibilità e anzichè gestire la
configurazione come maschera di bit gestirla come semplice flag, in questo
modo usi solo una select al posto degli IF.
Alla fine tra un po' di IF e una SELECT non risparmi molto, tenendo conto
che comunque rispetto al tuo sistema hai già guadagnato parecchio.
Inoltre così se devi aggiungere un "sotto-caso" devi impazzire molto di più.
A me dicono "Ognuno può fare come vuole, poi che si arrangi". :)
Ciao

> A me dicono "Ognuno può fare come vuole, poi che si arrangi". :)
Sono daccordo :)
E' che avrei dovuto mofificare molto codice, ma analizzando il tuo sistema è
OK.
Comunque quello che mi mancava era il .Name del ToForm :)
Grazie a tutti e due
Alberto