簡體   English   中英

如何隱藏綁定的DataGridView的最后一列?

[英]How to hide the last column of a bound DataGridView?

我有一個綁定到DataSource的DataGridView,它根據用戶輸入將其列隱藏在DataBindingComplete事件中。 除非所有列都需要隱藏,否則總是顯示最后一個要隱藏的列,它可以正常工作。 在調試過程中,我可以看到該列設置為visible = false,但沒有任何效果。

我有一個可行的解決方法,可以在DataBindingComplete事件中觸發計時器並調用HideColumns()方法,但我正在尋找更好的解決方案。

    private void CoverageDGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {            
        var datagridview = sender as DataGridView;

        datagridview.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;            
        datagridview.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
        datagridview.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

        datagridview.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;            
        datagridview.RowHeadersVisible = true;            
        datagridview.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders;
        datagridview.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;                                                    
        datagridview.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

        HideColumns(datagridview);

        //timer1.Enabled = true; // This works fine
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        HideColumns(ShipCoverageDGV);
    }

    private void HideColumns(DataGridView datagridview)
    {
        for (int i = 0; i < datagridview.Columns.Count; i++)
        {
            var column = datagridview.Columns[i];
            var itemType = [USER INPUT];
            if (itemType == Glossary.IndirectCOType)
                column.Visible = IndirectCOCheckBox.Checked;
            else if (itemType == Glossary.NotAllocatedType)
                column.Visible = NotAllocatedCheckBox.Checked;
            else
                column.Visible = DirectCOCheckBox.Checked;                    
        }           
    }

我的問題是:是否有解決方案如何隱藏所有列?

dataGridView1.Columns[0].Visible = false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM