¿Cómo ajustar automáticamente el ancho de la columna según el contenido en el control de la tabla de datos VB6? ¡urgente!
Déjame hablar de mis ideas. No escribiré el código específico, lo cual es más problemático. Déjame contarte algunas de mis ideas y podrás comprender el código tú mismo de acuerdo con la situación real.
No sé si hay algún ajuste general en la declaración de la función de consulta. Solo pienso en determinarlo por registro.
1. A partir del primer registro, define tantas variables como columnas haya para almacenar el número de caracteres del registro actual,
2. Luego lee los caracteres de cada columna. columna por columna y luego almacene el más grande en una variable.
Después de leer todo, la variable almacenará el número de caracteres del ancho máximo de columna. Puede establecer el ancho de cada columna en función de esta cantidad de caracteres y un código de escala determinado.
¿Puedes enviarme el código fuente? Déjame echarle un vistazo,
qq260210087
ha sido cambiado. ¿Qué tal si pruebas el siguiente código? Preste atención a las variables recién agregadas y la lógica que modifiqué
'****************************** ******
Atenuar CurLen como único
Atenuar MaxLen como único
Atenuar i como entero
Atenuar CellLen(0 a 9) como Single
Dim tt(0 To 9) As Single 'Aquí hay una matriz más para contener los anchos temporales de las columnas.
'SqlStr1 = "select * from dbo.code donde " & TjDm & TjPh & TjXh & TjDw
'Establecer rs1 = cn1.Execute(SqlStr1)
Si no es Rs1.EOF entonces
Rs1.MoveFirst 'Esto es inútil y se puede conservar. También se puede eliminar.
'El ancho del título se almacena primero en la matriz de ancho. A continuación se hará una comparación.
Para i = 0 a Rs1.Fields.Count - 1
CellLen(i) = LenB(StrConv(CStr(Rs1.Fields(i).Name), vbFromUnicode)) * 120
Siguiente
Hacer mientras no sea Rs1.EOF
Para i = 0 a Rs1.Fields.Count - 1
tt (i) = LenB(StrConv(Trim(CStr(Rs1(i).Value)), vbFromUnicode))* 120
Si tt( i) > CellLen(i) Entonces CellLen(i) = tt (i) 'Mantener números mayores.
Siguiente
Rs1.MoveNext
Bucle
Establezca DataGrid2.DataSource = Rs1
Para i = 0 A Rs1.Fields.Count - 1
DataGrid2.Fields(i) = Rs1.Fields.Count - 1
Rs1.Fields(i) = Rs1.Fields(i) Columnas (i).Width = CellLen(i)
Siguiente
Fin si