[英]Not able to hide first column in datagridview?
我在Windows窗體中有一個datagridview
,其中包含一些列。 我想通過后面的代碼隱藏Ist列( CompanyID )。
但是Ist列並未隱藏。
嘗試了以下2件事:
dgvVendorDetails.Columns["CompanyID"].Visible = false;
和:
dgvVendorDetails.Columns[0].Visible = false;
我不知道背后的原因。 我已經搜索了很多,但沒有解決方案。
這兩種語法都是正確的,應該可以工作:
dgvVendorDetails.Columns["CompanyID"].Visible = false;
dgvVendorDetails.Columns[0].Visible = false;
我的猜測是您正在使用DataGridView.AutoGenerateColumns
函數,即使您設置了DataSource
屬性, DatagridView
也不會在顯示網格之前創建列。
因此有可能:
如果是這樣,解決方案是使用DataBindingComplete
事件。
另請參閱以下相關問題:
編輯
正如@brikovich指出的,另一種解決方案不是不使用AutoGenerated列,而是在設計時或運行時創建並配置它們。
此線程如何在綁定到DataTable的Datagridview中選擇可見列可以幫助您實現這一點和/或在這兩個選項之間進行選擇。
將自動生成的列設置為false,然后將每一列一一添加到網格中。 然后將您不希望看到的列設置為visible = false。 無需后面的代碼。
嘗試這個:
VB.net:
Private Sub dgvVendorDetails_ColumnAdded(sender As Object, e As DataGridViewColumnEventArgs) Handles dgvVendorDetails.ColumnAdded
If e.Column.Name = "CompanyID" Then dgvVendorDetails.Columns("CompanyID").Visible = False
End Sub
C#:
private void dgvVendorDetails_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
if (e.Column.Name == "CompanyID")
dgvVendorDetails.Columns("CompanyID").Visible = false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.