2011-06-06 205 views
2

我的VB.NET winform應用程序中有3個DataGridView控件的代碼如下。我怎樣才能簡化這段代碼?如何在VB.NET中簡化此代碼

With DataGridView1 
     .Columns.Add("Column 0", "TaskName") 
     .AutoResizeColumns() 
    End With 

    With DataGridView2 
     .Columns.Add("Column 0", "TaskName") 
     .AutoResizeColumns() 
    End With 

    With DataGridView3 
     .Columns.Add("Column 0", "TaskName") 
     .AutoResizeColumns() 
    End With 

回答

4

你能;

For Each o As DataGridView In New DataGridView() {DataGridView1, DataGridView2, DataGridView3} 
    o.Columns.Add("Column 0", "TaskName") 
    o.AutoResizeColumns() 
Next 
+1

甚至更​​短:對於DataGridView中的每個DataGridView {DataGridView1,DataGridView2,DataGridView3} – 2011-06-06 13:55:13

4

道歉,如果這不是有效的VB.Net:

AddColumn(DataGridView1) 
AddColumn(DataGridView2) 
AddColumn(DataGridView3) 

Private Sub AddColumn(ByVal dgv As DataGridView) 
    dgv.Columns.Add("Column 0", "TaskName") 
    dgv.AutoResizeColumns() 
End Sub 
+0

你可以進一步重構這個小組通過列名,任務名傳遞作爲參數。 – knslyr 2011-06-06 14:57:42

0
Public NotInheritable Class GridViewHelper 

Public Shared Function BuildDataGridView(view as DataGridView) as DataGridView 
With View 
    .Columns.Add("Column 0", "TaskName") 
    .AutoResizeColumns() 
End With 
Return view 
End Function 

End Class 

當然,你可以添加TryCast()等,以確保正確的對象在等