Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo ajustar automáticamente el ancho de la columna según el contenido en el control de la tabla de datos VB6? ¡urgente!

¿Cómo ajustar automáticamente el ancho de la columna según el contenido en el control de la tabla de datos VB6? ¡urgente!

El control de ajustar automáticamente el ancho de la columna no tiene esta función directa. Debería ser posible si se controla mediante código.

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