Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    DataGrid & DataTable & TableStyles

    ciao a tutti!

    popolo un datagrid tramite un datatable.
    utilizzo un tablestyle per impostare lo sfondo, le dimensioni delle colonne, ecc...

    una delle colonne del datagrid, è una checkbox.

    vorrei assegnare un colore diverso per le righe dove la checkbox=true!!!

    COME SI FA???



    con la funzione seguente imposto il colore alla riga selezionata:
    DataGrid1.TableStyles("Ricercati").SelectionForeCo lor = System.Drawing.Color.Red

    con quest'altra, imposto tutta la datagrid di un colore:
    DataGrid1.TableStyles("Ricercati").ForeColor = System.Drawing.Color.Gray

    non riesco a trovare la soluzione per impostare il colore a certe righe!!!
    Vettorob

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    261
    Immagino tu faccia riferimento a vb net.... in tal caso il metodo da te utilizzato non è dei migliori, devi crearti una classe nella quale erediti la DataGridTextBoxColumn e da qui devi fare l'Override del Paint ed hai il controllo di tutte le celle righe, e colonne, più facile a fare che a dire.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    scusa la mia ignoranza..

    ...ma come si fa a fare l'Override del Paint????????

    qualche link per capire meglio???
    Vettorob

  4. #4
    vettorob non sei nuovo del forum.
    Il linguaggio DEVE ESSERE SPECIFICATO NEL TITOLO DELLA DISCUSSIONE, vedi regolamento: < QUI >

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5

    Re: scusa la mia ignoranza..

    Originariamente inviato da vettorob
    ...ma come si fa a fare l'Override del Paint????????
    Devi crearti un classe tua ed ereditare quella che vuoi, in questo caso DataGridTextBoxColumn, e poi nella classe ci inserisci
    codice:
    publi class MyDataColumn : DataGridTextBoxColumn {
         protected override OnPaint(PaintEventArgs e){
         }
    }
    qualche link per capire meglio???
    msdn.microsoft.com/..../...DataGridTextBoxColumn...
    msdn.microsoft.com/..../..DataGridBoolColumn...
    by giuSp [.NetDeveloper]

    ___________
    un po' di VB non fa male!....?
    C# more power to you!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105
    i due link non funzionana!!!
    Vettorob

  7. #7
    Originariamente inviato da vettorob
    i due link non funzionana!!!
    eccoli qui, anteponi http: e poi copia e incolla gli indirizzi:
    Link 1: //msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwindowsformsdatagridtextboxcolumnclassp ainttopic.asp

    Link 2: //msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwindowsformsdatagridboolcolumnclasstopi c.asp


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    OK!

    ho creato la classe ed ho ereditato la DataGridTextBoxColumn!!!
    ho fatto l'Override del Paint!!!

    ma adesso, come faccio ad assegnare un colore diverso per le righe dove la checkbox=true???
    Vettorob

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    261
    Basta sbattere la testa al muro , puoi farti la bua.....
    allora, prima di tutto ti spiego come funziona: al popolamento di ogni cella il controllo passa alla
    codice:
      Protected Overloads Overrides Sub Paint(ByVal graph As Graphics, ByVal rectbounds As Rectangle, _
    ByVal curmngrSrc As CurrencyManager, ByVal RowNumber As Integer, ByVal ForeColorBrush As Brush, _
    ByVal BackColorBrush As Brush, ByVal AlignmentRight As Boolean)
    qui dentro devi controllare il nome della colonna e in base al valore decidi come vuoi la cella

    codice:
     If Me.HeaderText = "pippo" Then
        Dim ObjValCella As Boolean = Me.GetColumnValueAtRow(curmngrSrc, RowNumber) ' Ricavo il valore della cella
                    If ObjValCella = tuovalore Then
                       BackColorBrush = Brushes.Azure
                    Else
                       BackColorBrush = Brushes.Red
                         
    ' e qui va l'istruzione più importante :
    MyBase.Paint(graph, rectbounds, curmngrSrc, RowNumber, BackColorBrush, ForeColorBrush, AlignmentRight)
    spero di esserti stato utile , naturalmente è solo l'inizio , puoi fare un sacco di altre cose....

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    avevo abbandonato il progetto!!!

    adesso l'ho ripreso ed ho cercato di capirci qualcosa!!!
    ma dopo che creo la classe facendo l'override del paint, come faccio a richiamare il "Sub Paint" ed a passargli i valori???
    Vettorob

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.