Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/05/2006, 08:56
Avatar de sagma
sagma
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 20 años, 6 meses
Puntos: 1
colorear un renglon en el DG

Hola amigo como estas, yo tambien buscaba lo mismo, y encontre esto en la web. espero te sirva.

Código:
prueba a utilizar un estilo aplicado al datagrid· en primer lugar debes
crear un objeto datagridtablestyle y tantos objetos datagridtextboxcolumn
como columnas quieras mostrar en el grid‚ excepto en la columna a la que
quieres aplicar un color en base a una condición· para esta columna creas una
clase que herede de datagridtextboxcolumn y reemplazas el método paint()‚
añadiendo el código personalizado que modifique el color de fondo cuando se
cumpla la condición· te adjunto un ejemplo de código para que puedas probarlo
y hacer las modificaciones para tu caso:

'/////////////////////////////////////////////////
public class form1
inherits system.windows.forms.form

private sub form1_load(byval sender as system.object‚ byval e as
system.eventargs) handles mybase.load
dim oconnection as sqlconnection
dim odataadapter as sqldataadapter
dim odataset as dataset

oconnection = new
sqlconnection("server=localhost;database=northwind;uid=sa;pwd=")
odataadapter = new sqldataadapter("select
productid‚productname‚supplierid from products"‚ oconnection)
odataset = new dataset

oconnection.open()
odataadapter.fill(odataset‚ “products")
oconnection.close()

me.datagrid1.datasource = odataset
me.datagrid1.datamember = “products"

dim otablestyle as new datagridtablestyle
otablestyle.mappingname = “products"

dim oproductid as new datagridtextboxcolumn
oproductid.mappingname = “productid"
oproductid.headertext = “código"
oproductid.alignment = horizontalalignment.center

dim oproductname as new datagridtextboxcolumn
oproductname.mappingname = “productname"
oproductname.headertext = “nombre"

dim osupplierid as new dgtxtcolcolor
osupplierid.mappingname = “supplierid"
osupplierid.headertext = “proveedor"

otablestyle.gridcolumnstyles.addrange(new datagridcolumnstyle() _
{oproductid‚ oproductname‚ osupplierid})

me.datagrid1.tablestyles.add(otablestyle)
end sub
end class

'–––––––––––––––––––––––––––––––––
public class dgtxtcolcolor
inherits datagridtextboxcolumn

protected overloads overrides sub paint(byval g as
system.drawing.graphics‚ _
byval bounds as system.drawing.rectangle‚ _
byval source as system.windows.forms.currencymanager‚ _
byval rownum as integer‚ _
byval backbrush as system.drawing.brush‚ _
byval forebrush as system.drawing.brush‚ _
byval aligntoright as boolean)

dim obrush as solidbrush
dim ofiladatos as datarowview = source.list(rownum)

if ofiladatos("supplierid") = 3 then
obrush = new solidbrush(color.aquamarine)
else
obrush = backbrush
end if

mybase.paint(g‚ bounds‚ source‚ rownum‚ _
obrush‚ _
forebrush‚ _
aligntoright)
end sub
end class
'/////////////////////////////////////////////////

observa que para la columna del campo supplierid usamos en el datagrid una
clase propia‚ y en su evento paint() comprobamos el valor de dicho campo‚
cuando sea 3‚ le aplicamos un color de fondo distinto·

espero que te sea de utilidad·
__________________
Sagma -- :arriba: