Deshabilitar una columna en datagridview

31/08/2008 - 05:04 por Luisa Goicochea | Informe spam
Saludos a todos los participantes.

Como se desabilita una columna de un datagridview ?

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
01/09/2008 - 08:13 | Informe spam
Hola Luisa

Prueba a utilizar la colección Columns, asignando true a la propiedad
ReadOnly de la columna que necesites deshabilitar. Algo parecido a lo
siguiente:

this.DataGridView1.Columns["NombreColumna"].ReadOnly = true;

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Luisa Goicochea" wrote:

Saludos a todos los participantes.

Como se desabilita una columna de un datagridview ?



Respuesta Responder a este mensaje
#2 Luisa Goicochea
01/09/2008 - 15:56 | Informe spam
Gracias Luis Miguel, pero existe tambien una manera de que dicha columna no
pueda obtener el foco ?
Veo que sigue obteniendo el foco aunque no sea modificable.
Pensaba que podria funcionar similar un textbox que cuando tienen
enabled=false no te puedes posicionar en el.


"Luis Miguel Blanco" escribió
en el mensaje news:
Hola Luisa

Prueba a utilizar la colección Columns, asignando true a la propiedad
ReadOnly de la columna que necesites deshabilitar. Algo parecido a lo
siguiente:

this.DataGridView1.Columns["NombreColumna"].ReadOnly = true;

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Luisa Goicochea" wrote:

Saludos a todos los participantes.

Como se desabilita una columna de un datagridview ?



Respuesta Responder a este mensaje
#3 Luis Miguel Blanco
01/09/2008 - 20:48 | Informe spam
Hola Luisa

Para lograr este comportamiento que comentas puedes utilizar el evento KeyUp
del control grid, donde compruebas, a través del parámetro KeyEventArgs que
recibe dicho evento, la columna en la que estamos entrando, y en el caso de
que sea una que no quieres que reciba el foco, lo cambias a la columna
siguiente o anterior mediante la clase/método SendKeys.Send en función de la
navegación por las columnas que esté haciendo el usuario. El código podría
ser similar al siguiente:

//
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if
(this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].Name
== "OrderDate")
{
if (e.KeyCode == Keys.Right)
{
SendKeys.Send("{RIGHT}");
}

if (e.KeyCode == Keys.Left)
{
SendKeys.Send("{LEFT}");
}
}
}
//

También es conveniente comprobar cuándo el usuario hace clic sobre la
columna que necesitamos se comporte como deshabilitada, de forma que en el
caso de que el usuario intente seleccionarla, también utilizamos
SendKeys.Send para reposicionarnos en otra columna.

//
private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
if
(this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].Name
== "OrderDate")
{
SendKeys.Send("{LEFT}");
}
}
//

Espero que estos ejemplos te sirvan de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Luisa Goicochea" wrote:

Gracias Luis Miguel, pero existe tambien una manera de que dicha columna no
pueda obtener el foco ?
Veo que sigue obteniendo el foco aunque no sea modificable.
Pensaba que podria funcionar similar un textbox que cuando tienen
enabled=false no te puedes posicionar en el.


"Luis Miguel Blanco" escribió
en el mensaje news:
> Hola Luisa
>
> Prueba a utilizar la colección Columns, asignando true a la propiedad
> ReadOnly de la columna que necesites deshabilitar. Algo parecido a lo
> siguiente:
>
> this.DataGridView1.Columns["NombreColumna"].ReadOnly = true;
>
> Espero que te sirva de ayuda.
>
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
> http://geeks.ms/blogs/lmblanco/
>
>
> "Luisa Goicochea" wrote:
>
>> Saludos a todos los participantes.
>>
>> Como se desabilita una columna de un datagridview ?
>>
>>
>>



Respuesta Responder a este mensaje
#4 Luisa Goicochea
07/09/2008 - 16:33 | Informe spam
Gracias Luis lo voy a empezar a probar a ver que tal.

Muchos saludos

"Luis Miguel Blanco" escribió
en el mensaje news:
Hola Luisa

Para lograr este comportamiento que comentas puedes utilizar el evento
KeyUp
del control grid, donde compruebas, a través del parámetro KeyEventArgs
que
recibe dicho evento, la columna en la que estamos entrando, y en el caso
de
que sea una que no quieres que reciba el foco, lo cambias a la columna
siguiente o anterior mediante la clase/método SendKeys.Send en función de
la
navegación por las columnas que esté haciendo el usuario. El código podría
ser similar al siguiente:

//
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if
(this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].Name
== "OrderDate")
{
if (e.KeyCode == Keys.Right)
{
SendKeys.Send("{RIGHT}");
}

if (e.KeyCode == Keys.Left)
{
SendKeys.Send("{LEFT}");
}
}
}
//

También es conveniente comprobar cuándo el usuario hace clic sobre la
columna que necesitamos se comporte como deshabilitada, de forma que en el
caso de que el usuario intente seleccionarla, también utilizamos
SendKeys.Send para reposicionarnos en otra columna.

//
private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
if
(this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].Name
== "OrderDate")
{
SendKeys.Send("{LEFT}");
}
}
//

Espero que estos ejemplos te sirvan de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Luisa Goicochea" wrote:

Gracias Luis Miguel, pero existe tambien una manera de que dicha columna
no
pueda obtener el foco ?
Veo que sigue obteniendo el foco aunque no sea modificable.
Pensaba que podria funcionar similar un textbox que cuando tienen
enabled=false no te puedes posicionar en el.


"Luis Miguel Blanco"
escribió
en el mensaje news:
> Hola Luisa
>
> Prueba a utilizar la colección Columns, asignando true a la propiedad
> ReadOnly de la columna que necesites deshabilitar. Algo parecido a lo
> siguiente:
>
> this.DataGridView1.Columns["NombreColumna"].ReadOnly = true;
>
> Espero que te sirva de ayuda.
>
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
> http://geeks.ms/blogs/lmblanco/
>
>
> "Luisa Goicochea" wrote:
>
>> Saludos a todos los participantes.
>>
>> Como se desabilita una columna de un datagridview ?
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida