.net - para - ¿Cómo hacer que DataGridViewComboBoxColumn expanda el menú desplegable a la izquierda?
menu desplegable vertical html (2)
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.
Como esto tiene que estar en el lado derecho, ¿hay alguna manera de anclar el menú desplegable a la derecha de la celda y expandirlo hacia la izquierda?
Estamos usando .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 ...
Si lo entiendo correctamente, necesitas auto-dimensionar el ancho para que las cosas se muestren? Encontré una publicación sobre cómo hacer eso en MSDN.
Entiendo que la pregunta es vieja, 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.
De modo 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.
Entonces podrías intentar
- utilizar la refactorización para corregir el comportamiento del control (baja probabilidad);
- prohibiendo mover la ventana (programáticamente) cerca del borde derecho de la pantalla;
- utilizando su propio control (invalidar o escribir su propia clase DataGridViewComboBoxColumn) o comprar una grilla personalizada.