C # - Datagridview столбцы - PullRequest
       5

C # - Datagridview столбцы

1 голос
/ 11 марта 2011

У меня есть DataGridView в WinForm.Я заполняю DataGridView из таблицы базы данных.Мне было интересно, есть ли какой-нибудь способ запрограммировать мой DataGridView, чтобы я мог выбрать, какие столбцы я хочу, чтобы отображение сетки отображалось во время выполнения?

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Простой ответ - «да».

В первом случае вам нужно установить для свойства AutoGenerateColumns DataGridView значение false, тогда вы можете контролировать, какие столбцы будут отображаться.

В прошлом я создавал контекстное меню для DGV:

ContextMenu = new ContextMenu();
foreach (var column in this.dataGridView.Columns)
{
    this.AddContextMenuItem(ContextMenu, column.Name, column.Visible);
}

private void AddContextMenuItem(ContextMenu contextMenu,
                                string columnName,
                                bool visible)
{
    var menuItem = new MenuItem(columnName,
        new EventHandler(this.ContextMenu_onClick)) { Checked = visible };
    contextMenu.MenuItems.Add(menuItem);
}

Затем при переключении параметра меню измените свойство Visible столбца.

private void ContextMenu_onClick(object sender, EventArgs e)
{
    var clicked = sender as MenuItem;
    if (clicked != null)
    {
        // Update the state of the context menu
        clicked.Checked = !clicked.Checked;

        // Update the visibity of this column
        this.dataGridView.Columns[clicked.Text].Visible = clicked.Checked;
    }
}
0 голосов
/ 11 марта 2011

Используйте свойство DataGridView.AutoGenerateColumns - установите значение false.Явно настройте нужные столбцы, и все готово.

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