удалить объекты из последней строки динамического представления данных - PullRequest
2 голосов
/ 23 июня 2011

У меня есть таблица данных winform:

 DataTable table = new DataTable();
        table.Columns.Add("Check", typeof(bool));
        table.Columns.Add("User", typeof(string));
        table.Columns.Add("Path", typeof(string));
        table.Columns.Add("Status", typeof(Image));


        using (RegistryKey root = Registry.LocalMachine.OpenSubKey("SOFTWARE\\xyz"))
        {

            foreach (string keyname in root.GetSubKeyNames())
            {
                using (RegistryKey key = root.OpenSubKey(keyname))
                {
                    if (keyname == sentKeyName)
                    {
                        foreach (string valuename in key.GetValueNames())
                        {
                            if (key.GetValue(valuename) is String)
                            {
                                Image image = Image.FromFile(@"Image1.jpg");

                                table.Rows.Add(false, valuename, key.GetValue(valuename), image);
                            }
                        }
                    }
                }
            }                             
        }
        dataGridView1.DataSource = table;
        dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 

Теперь я положил изображение и флажок в таблицу, как показано выше.

работает нормально, когда у меня есть значения, но для последней строки, которая пуста и может быть отредактирована, заполняется флажком и символом изображения ошибки.

Также есть способ сделать один столбец доступным только для чтения.

любые предложения

спасибо

1 Ответ

2 голосов
/ 23 июня 2011

Вы получаете эту дополнительную строку, потому что вы разрешаете пользователю добавлять новую строку. Если вы хотите отключить добавление новой строки (и скрыть некрасивую лишнюю строку), используйте следующее:

dataGridView1.AllowUserToAddRows = false;

Чтобы сделать один столбец доступным только для чтения, выполните следующие действия:

dataGridView1.Columns["Status"].ReadOnly = true;

Обязательно вызывайте этот ПОСЛЕ того, как вы установили источник данных.

Обновление:

В данный момент я ничего не могу проверить, но свойство DataGridViewImageColumn.DefaultCellStyle похоже на то, что вы ищете, в частности:

Чтобы предотвратить ошибку появляются в ряду для новых записей когда элемент управления AllowUserToAddRows Значение свойства true, вы также должны либо явно установить значение ячейки обнулить или свой собственный график ошибок в обработчик для управления RowsAdded событие или установить столбец CellTemplate свойство к экземпляру DataGridViewImageCell-производный тип с переопределенным DefaultNewRowValue свойство, которое возвращает ноль или ваш собственный графическая ошибка.

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