2008-10-17 14 views
5

Tengo un DataGridViewCobmoboxColumn que tiene que estar en el extremo derecho de la pantalla. Los elementos en la celda son más anchos que el ancho de la celda, por lo que la lista desplegable también es más ancha que la celda, por lo que el usuario puede ver qué selección superior. Cuando la lista se despliega, el lado derecho de la lista desplegable no está visible y, por lo tanto, la barra de desplazamiento tampoco está visible. Los usuarios piensan que solo hay 7 elementos para elegir, cuando en realidad hay muchos.¿Cómo hacer que DataGridViewComboBoxColumn expanda el menú desplegable a la izquierda?

Dado que esto tiene que estar en el lado derecho, ¿hay alguna manera de anclar el menú desplegable a la derecha de la celda y expandir hacia la izquierda?

Estamos utilizando .Net 2.0 para este proyecto. Dado que estamos codificando tanto en VB como en C#, no estoy demasiado preocupado porque una respuesta sea específica del idioma. Tomaré cualquier cosa ...

Respuesta

1

Si entiendo correctamente, necesita un tamaño automático del ancho para que las cosas se muestren? I found a post on how to do that on MSDN.

+0

Atrás en 2008 Stancliff dijo "Gracias por tomarse el tiempo para responder, pero hacer un menú desplegable lo suficientemente amplio no es un problema. El problema es que la lista desplegable es más ancha que la celda. se expande más allá del borde derecho de la celda y, por lo tanto, fuera de la pantalla. Lo que necesito es anclar el menú desplegable en el borde derecho de la celda y hacer que se expanda más allá del borde de la celda izquierda ". – MarkJ

0

de entender la pregunta es viejo, pero:

La mejor solución sería usar algo como ToolStripDropDownDirection.AboveLeft Pero por lo que veo desde el código fuente no hay nada como esto.

Así que otro enfoque podría ser establecer valores de DropDownWidth/MaxDropDownItems dependiendo de la posición del cuadro combinado desde el lado derecho/inferior de la pantalla. Pero esto no funciona porque el menú desplegable no puede ser más pequeño que la celda.

Así que usted podría intentar

  • usando refactorización para corregir el comportamiento del control (baja probabilidad);
  • que prohíbe mover la ventana (programáticamente) cerca del borde derecho de la pantalla;
  • usando su propio control (invalidar o escribir su propia clase DataGridViewComboBoxColumn) o comprar una grilla personalizada.
Cuestiones relacionadas