Visual C++ 7.1Visual C++ 7.0Windows 2003Visual Studio 2005Windows 2000Visual C++ 6.0高级Windows XP.NET 2.0MFC开发Visual StudioWindowsC++.NETVisual Basic
调整 DataGrid 列以适应窗体大小调整(使用 ParamArray)






1.05/5 (8投票s)
2004年4月9日

56858

739
自动处理调整网格宽度
引言
基于用户调整窗体大小自动调整列宽并不是一个好的方法。 但是,通过本文,将解释如何使用单个函数调整网格列宽。
“GridResizeColumns”过程
“GridResizeColumns”函数将在您调整 VB 窗体大小时调整列宽。 此过程将支持 VB6 和 VB.NET 应用程序。
参数
列出了四个参数
1. DataGridView - 控件 - 这将是您的网格控件名称
2. FixedTotalWidth - Double - 这将是您的总固定网格宽度(例如,您可能希望在网格中保留一个固定大小的复选框。)
3. StartCol - Integer - 这标识您要开始调整的列
4. ColumnWidthInPercent() - ParamArray & Double - 您可以为每个列分配百分比大小。
示例代码
以下是“GridResizeColumns”过程的示例代码。 您也可以下载完整的源代码。
Private Sub GridResizeColumns(ByVal DataGridView As Control,_
ByVal FixedTotalWidth As Double, _
ByVal StartCol As Integer,_
ByVal ParamArray ColumnWidthInPercent() As Double)
Dim TotalGridWidth As Long
Dim intIndex As Integer
Dim PercentColWidth As Integer
On Error GoTo ErrHandler
With DataGridView1
'Exclusing Fixed column width
TotalGridWidth = DataGridView.Width - FixedTotalWidth
.ScrollBars = flexScrollBarVertical
For Each PercentColWidth In ColumnWidthInPercent
.Columns(StartCol).Width = (PercentColWidth / 100) * TotalGridWidth
StartCol = StartCol + 1
Next
.Refresh()
End With
Exit Sub
ErrHandler:
Exit Sub
End Sub
示例
GridResizeColumns(MyDataGridView1, 0, 0, 25, 25, 25, 25)