Como ocultar una fila

10/11/2006 - 01:53 por Daniel | Informe spam
Hola a todos,

Tengo un código tal que así dentro de un para que oculta las filas de un
DATAGRIDVIEW:

If DataGridView.Rows(i).Selected = True Then
DataGridView.Rows(i).Selected = False
End If
GridNotas.Rows(i).Visible = False

Y me salta el siguiente error: "La fila asociada con la posición del
administrador de moneda no se puede hacer visible."

Le he dado mil y una vueltas y no hay forma de que funcione. Soy capaz
de borrar las filas, pero no de ocultarlas.

Saludos y gracias.

Preguntas similare

Leer las respuestas

#1 Vmrincon
10/11/2006 - 08:45 | Informe spam
Hola Daniel:

Supongo que estarás haciendo un binding desde algún DataSource...

En este caso necesitas parar el binding para realizar la operación
que deseas... algo así como esto:


GridNotas.DataSource.suspendbinding()


If DataGridView.Rows(i).Selected = True Then
DataGridView.Rows(i).Selected = False
End If
GridNotas.Rows(i).Visible = False

GridNotas.DataSource.resumebinding()

/*Esto último sólo si quieres continuar conectado a tu fuente de
datos.

Espero que te sirva.

Un saludo
Respuesta Responder a este mensaje
#2 Alberto Poblacion
10/11/2006 - 10:12 | Informe spam
"Daniel" wrote in message
news:
[...] "La fila asociada con la posición del administrador de moneda no se
puede hacer visible."



Traducciones como esta son las que me hacen trabajar con la versión en
inglés en lugar de la española. Para entender el mensaje hay que traducirlo
de nuevo al inglés, con lo que "administrador de moneda" se convierte en
"currency manager", y luego de vuelta al español, convirtiéndose en algo así
como "gestor de fila seleccionada". Se refiere al objeto CurrencyManager,
que es el que gestiona dentro del formulario cuál es la fila que el usuario
tiene seleccionada en el grid (lo de "currency" en este caso no tiene nada
que ver con "moneda"). El mensaje te dice que la fila seleccionada no la
puedes ocultar. Lo que tienes que hacer es recuperar el CurrencyManager del
grid y cambiar la fila seleccionada:

Dim cm As CurrencyManager
cm = Me.BindingContext(elDataSet, "LaTabla")
cm.Position = -1

Una vez que el ".Position" ya no apunta a la fila que quieres ocultar,
ya no debería haber problemas para ocultarla.
Respuesta Responder a este mensaje
#3 Daniel
10/11/2006 - 20:10 | Informe spam
Hola, muchas gracias por la respuesta. La cuestion es que la forma de llenar
el datagridview que utilizo no es con un databinding, es de la siguiente
forma:

cnn.Open()

da.Fill(ds, "titulo")
GridNotas.DataSource = ds
GridNotas.DataMember = "titulo"

¿Me sigue sirivendo lo que comentabas? Es que no sé que objeto sería el
Me.Me.BindingContext(...).

Muchas gracias.

"Alberto Poblacion" wrote:

"Daniel" wrote in message
news:
> [...] "La fila asociada con la posición del administrador de moneda no se
> puede hacer visible."

Traducciones como esta son las que me hacen trabajar con la versión en
inglés en lugar de la española. Para entender el mensaje hay que traducirlo
de nuevo al inglés, con lo que "administrador de moneda" se convierte en
"currency manager", y luego de vuelta al español, convirtiéndose en algo así
como "gestor de fila seleccionada". Se refiere al objeto CurrencyManager,
que es el que gestiona dentro del formulario cuál es la fila que el usuario
tiene seleccionada en el grid (lo de "currency" en este caso no tiene nada
que ver con "moneda"). El mensaje te dice que la fila seleccionada no la
puedes ocultar. Lo que tienes que hacer es recuperar el CurrencyManager del
grid y cambiar la fila seleccionada:

Dim cm As CurrencyManager
cm = Me.BindingContext(elDataSet, "LaTabla")
cm.Position = -1

Una vez que el ".Position" ya no apunta a la fila que quieres ocultar,
ya no debería haber problemas para ocultarla.




Respuesta Responder a este mensaje
#4 Alberto Poblacion
10/11/2006 - 21:59 | Informe spam
"Daniel" wrote in message
news:
La cuestion es que la forma de llenar
el datagridview que utilizo no es con un databinding, es de la
siguiente forma:
[...]
GridNotas.DataSource = ds



¿Cómo que no utilizas un DataBinding? Eso *ES* un DataBinding.



GridNotas.DataMember = "titulo"

¿Me sigue sirivendo lo que comentabas? Es que no sé que objeto sería el
Me.BindingContext(...).



Claro que te vale. Cuando preguntas por el Me.BindingContext(ds,
"titulo"), te devuelve el CurrencyManager correspondiente:

Dim cm As CurrencyManager
cm = Me.BindingContext(ds, "titulo")
cm.Position = -1
Respuesta Responder a este mensaje
#5 Daniel
11/11/2006 - 00:58 | Informe spam
Ahm... ya ves que no tengo claro ni lo que uso. Bueno, pues la cuestion es
que el dataset lo usé cuando cargué los datos en el DataGridView. Pero ahora,
estoy tratando el DataGridView en un evento que no usa para nada el dataset,
es decir, que sólo trabaja sobre el DataGridView de forma desconectada para
ocultar filas.

Con lo cual, no sabría que dataset pasarle a:
cm = Me.BindingContext(ds, "titulo")

Muchas gracias.



"Alberto Poblacion" wrote:

"Daniel" wrote in message
news:
> La cuestion es que la forma de llenar
> el datagridview que utilizo no es con un databinding, es de la
> siguiente forma:
> [...]
> GridNotas.DataSource = ds

¿Cómo que no utilizas un DataBinding? Eso *ES* un DataBinding.



> GridNotas.DataMember = "titulo"
>
> ¿Me sigue sirivendo lo que comentabas? Es que no sé que objeto sería el
> Me.BindingContext(...).

Claro que te vale. Cuando preguntas por el Me.BindingContext(ds,
"titulo"), te devuelve el CurrencyManager correspondiente:

Dim cm As CurrencyManager
cm = Me.BindingContext(ds, "titulo")
cm.Position = -1





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida