Как скрыть последний столбец привязанного DataGridView? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть 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;                    
        }           
    }

Мой вопрос: есть ли решение, как скрыть все столбцы?

1 Ответ

0 голосов
/ 26 апреля 2018

dataGridView1.Columns[0].Visible = false;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...