DataGridView: cambiar cursor del raton en cierta columna

10/11/2007 - 15:52 por AT Baez | Informe spam
Hola grupo, hacia algun tiempo que no venia por aqui. Un atento saludo a
todos,
Tengo la siguiente consulta:
En un datagridwiew como hago para que el cursor del raton cambie al pasar el
mismo sobre "una determinada columna"?
Tengo lo siguiente para, por ejemplo obtener la direccion de una celda:
{
DataGridView dgrid = (DataGridView)sender; string msg =
String.Format("Row: {0}, Column: {1}",
dgrid.CurrentCell.RowIndex, dgrid.CurrentCell.ColumnIndex);
MessageBox.Show(msg, "Current Cell");
}
Pero esto solo me funciona en el evento click; en el "MouseHover" que es el
que yo quiero me devuelve la celda seleccionada, pero NO aquella sobre la
cual ha pasado el raton.
Apreciaria vuestra ayuda por favor; muchas gracias de antemano,
Alberto

Preguntas similare

Leer las respuestas

#6 Luis Miguel Blanco
12/11/2007 - 08:24 | Informe spam
Hola Alberto

Disculpa, tienes razón, cuando te envié el código de ejemplo, lo había
probado primeramente con VB, y dado que la propiedad Columns del grid es una
colección, no me di cuenta de cambiar los paréntesis por corchetes. Prueba lo
siguiente, creo que con esto ya te funcionará ;-)

if (this.DataGridView1.Columns[e.ColumnIndex].Name == "ListPrice")

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"AT Baez" wrote:

Hola otra vez Luis Miguel,
He aplicado el codigo que me pasaste a mi utilidad (por supuesto cambiando
el nombre del datagridview y el de la columna), y en la linea:
if (this.DataGridView1.Columns(e.ColumnIndex).Name == "ListPrice")
da el siguiene error al intentar compilar:
'System.Windows.Forms.DataGridView.Columns' is a 'property' but is used like
a 'method'
Disculpa las molestias,
Alberto

"Luis Miguel Blanco" wrote in
message news:
> Hola Alberto
>
> Puedes utilizar el evento CellMouseMove del DataGridView para cambiar el
> cursor cuando se posicione en una columna, de forma similar a como puedes
> ver
> en el siguiente bloque de código.
>
> //--
> private Cursor curAnterior = null;
> //
> private void DataGridView1_CellMouseMove(object sender,
> System.Windows.Forms.DataGridViewCellMouseEventArgs e)
> {
> if (this.DataGridView1.Columns(e.ColumnIndex).Name == "ListPrice")
> {
> this.DataGridView1.Cursor = Cursors.Hand;
> }
> else
> {
> this.DataGridView1.Cursor = curAnterior;
> }
> }
> //--
>
> Espero que te sirva de ayuda.
>
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
>
>
> "AT Baez" wrote:
>
>> Hola grupo, hacia algun tiempo que no venia por aqui. Un atento saludo a
>> todos,
>> Tengo la siguiente consulta:
>> En un datagridwiew como hago para que el cursor del raton cambie al pasar
>> el
>> mismo sobre "una determinada columna"?
>> Tengo lo siguiente para, por ejemplo obtener la direccion de una celda:
>> {
>> DataGridView dgrid = (DataGridView)sender; string msg > >> String.Format("Row: {0}, Column: {1}",
>> dgrid.CurrentCell.RowIndex, dgrid.CurrentCell.ColumnIndex);
>> MessageBox.Show(msg, "Current Cell");
>> }
>> Pero esto solo me funciona en el evento click; en el "MouseHover" que es
>> el
>> que yo quiero me devuelve la celda seleccionada, pero NO aquella sobre la
>> cual ha pasado el raton.
>> Apreciaria vuestra ayuda por favor; muchas gracias de antemano,
>> Alberto
>>
>>
>>



Respuesta Responder a este mensaje
#7 AT Baez
12/11/2007 - 21:21 | Informe spam
Hola Luis Miguel,
No doy por sentado los inconvenientes y tiempo, que constestar una pregunta
en el foro ocasiona. Reitero mi agradecimiento por tu ayuda; que te vaya
bien.
Un saludo,
Alberto

"Luis Miguel Blanco" wrote in
message news:
Hola Alberto

Disculpa, tienes razón, cuando te envié el código de ejemplo, lo había
probado primeramente con VB, y dado que la propiedad Columns del grid es
una
colección, no me di cuenta de cambiar los paréntesis por corchetes. Prueba
lo
siguiente, creo que con esto ya te funcionará ;-)

if (this.DataGridView1.Columns[e.ColumnIndex].Name == "ListPrice")

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"AT Baez" wrote:

Hola otra vez Luis Miguel,
He aplicado el codigo que me pasaste a mi utilidad (por supuesto
cambiando
el nombre del datagridview y el de la columna), y en la linea:
if (this.DataGridView1.Columns(e.ColumnIndex).Name == "ListPrice")
da el siguiene error al intentar compilar:
'System.Windows.Forms.DataGridView.Columns' is a 'property' but is used
like
a 'method'
Disculpa las molestias,
Alberto

"Luis Miguel Blanco" wrote
in
message news:
> Hola Alberto
>
> Puedes utilizar el evento CellMouseMove del DataGridView para cambiar
> el
> cursor cuando se posicione en una columna, de forma similar a como
> puedes
> ver
> en el siguiente bloque de código.
>
> //--
> private Cursor curAnterior = null;
> //
> private void DataGridView1_CellMouseMove(object sender,
> System.Windows.Forms.DataGridViewCellMouseEventArgs e)
> {
> if (this.DataGridView1.Columns(e.ColumnIndex).Name == "ListPrice")
> {
> this.DataGridView1.Cursor = Cursors.Hand;
> }
> else
> {
> this.DataGridView1.Cursor = curAnterior;
> }
> }
> //--
>
> Espero que te sirva de ayuda.
>
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
>
>
> "AT Baez" wrote:
>
>> Hola grupo, hacia algun tiempo que no venia por aqui. Un atento saludo
>> a
>> todos,
>> Tengo la siguiente consulta:
>> En un datagridwiew como hago para que el cursor del raton cambie al
>> pasar
>> el
>> mismo sobre "una determinada columna"?
>> Tengo lo siguiente para, por ejemplo obtener la direccion de una
>> celda:
>> {
>> DataGridView dgrid = (DataGridView)sender; string msg >> >> String.Format("Row: {0}, Column: {1}",
>> dgrid.CurrentCell.RowIndex, dgrid.CurrentCell.ColumnIndex);
>> MessageBox.Show(msg, "Current Cell");
>> }
>> Pero esto solo me funciona en el evento click; en el "MouseHover" que
>> es
>> el
>> que yo quiero me devuelve la celda seleccionada, pero NO aquella sobre
>> la
>> cual ha pasado el raton.
>> Apreciaria vuestra ayuda por favor; muchas gracias de antemano,
>> Alberto
>>
>>
>>



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