2 consultas sobre DataGrid

16/11/2005 - 03:06 por Maria Agustina Paz | Informe spam
2 consultas sobre DataGrid


Como se puede hacer WordWrap en cada celda cuando se visualiza un DataGrid?
(La grilla es toda ReadOnly). Quiero decir, que el texto de una celda se
adapte al alto y ancho de la misma, mostrando la mayor cantidad de texto
posible. Intente hacerlo pero no encuentro la forma.



Los DataGrid de .NET tiene RowHeaders, se les puede cambiar el ancho: Como
se escribe texto dentro de cada RowHeader? O sirven solo para mostrar la
flechita señalizadora del row actualmente seleccionado?


saludo
 

Leer las respuestas

#1 Christian Pérez M
01/12/2005 - 16:50 | Informe spam
Hola Maria Agustina
Te paso un enlace interesante que te puede ayudar a resolver el problema de
AutoWrap

http://msdn.microsoft.com/smartclie...trlsp.aspx

Con respecto a la segunda pregunta, si es posible mostrar texto en la celda
RowHeader, aunque esta no tiene una propiedad Text especifica tu bien puedes
capturar el evento Paint y dibujar el texto de la cabecera que tu necesites,
puedes descargar proyectos de ejemplo desde aca
http://64.78.52.104/faq/winforms/Files/datagridrowheadertext.zip (C#)
http://64.78.52.104/faq/winforms/Files/datagridrowheadertext_vb.zip (VB.net)
El ejemplo carga el datagrid en el evento load del formulario,
adicionalemente este evento es utilizado para configurar el ancho de la
cabecera (rowheaderwidth) del datagrid, tendras que tener en cuenta que el
punto inicial para dibujar la celda es el 0,0 y ademas deberas utilizar la
propiedad toprow que determinara cuando tienes que iniciar a dibujar el texto
del header.
private void dataGrid1_Paint( object sender, PaintEventArgs e )
{
int row = TopRow();
int yDelta = dataGrid1.GetCellBounds( row, 0 ).Height + 1;
int y = dataGrid1.GetCellBounds( row, 0 ).Top + 2;

CurrencyManager cm (CurrencyManager) BindingContext[ dataGrid1.DataSource,
dataGrid1.DataMember ];
while( y < dataGrid1.Height - yDelta && row < cm.Count )
{
// dibujas el texto del header
string text = string.Format( "row{0}", row );
e.Graphics.DrawString( text, dataGrid1.Font,
new SolidBrush(Color.Black), 12, y );
y += yDelta;
++row;
}
}


Espero haberte ayudado en algo
Saludos



"Maria Agustina Paz" wrote:

2 consultas sobre DataGrid


Como se puede hacer WordWrap en cada celda cuando se visualiza un DataGrid?
(La grilla es toda ReadOnly). Quiero decir, que el texto de una celda se
adapte al alto y ancho de la misma, mostrando la mayor cantidad de texto
posible. Intente hacerlo pero no encuentro la forma.



Los DataGrid de .NET tiene RowHeaders, se les puede cambiar el ancho: Como
se escribe texto dentro de cada RowHeader? O sirven solo para mostrar la
flechita señalizadora del row actualmente seleccionado?


saludo

Preguntas similares