MohammadIqbal Ответов: 3

удаление значений ячеек datagridview


У меня есть datagridview. я хочу выбрать несколько ячеек, которые разбросаны по разным столбцам и строкам. когда я нажимаю клавишу Delete, эти ячейки должны быть чистыми. я мог бы добиться этого для ячеек текстового типа следующим образом (я использую MS Access в качестве базы данных, и все поля являются числами)
if (e.KeyData == Keys.Delete)
                   {

                       foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
                       {
                           // if keep column in text type in MS access
                           string i = "";
                           cell.Value = (object)i;


                       }



это действительно очистит все удаленные ячейки. но что мне делать, если клетки-это числа? как я могу присвоить нулевое значение этим числам при удалении.

if (e.KeyData == Keys.Delete)
                    {

                        foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
                        {
                            // if keep column in text type in MS access
                            int i =0;//here i want some null value
                            cell.Value = (object)i;

                            
                        }



приведенный выше код делает все удаленные ячейки с нулями . Я хочу избежать этой ситуации. Я не хочу ставить ноль вместо нуля.

другой подход, который я сделал, это

if (e.KeyData == Keys.Delete)
                    {

                        foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
                        {
                            
                            cell.Value = cell.DefaultNewRowValue;

                            
                        }

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

пожалуйста, кто-нибудь, помогите, пожалуйста......

3 Ответов

Рейтинг:
2

Member 13478969

Попробуйте сделать это для конкретной ячейки (VB);

компонента DataGrid.Строки(RowIndex).Ячейки(ColIndex).Value = DBNull.Ценность


Рейтинг:
1

Fady Aro

Просто попробуйте cell.value = null;
должны работать


[no name]

предлагаемые ячейки используются для отображения целых чисел . так что этого не может быть
инициализируется нулем . в случае струны это будет работать

Рейтинг:
0

Fady Aro

Пусть значение ячейки будет строковым
пример:
int i=2
клетки.значение= (я).метод toString()

я думаю вы можете использовать ячейку в качестве строки а использовать синтаксический анализ
чтобы прочитать значение ....
Если(ячейка.значение.tosting().trim()!="")
Int i = int.Parse(cell.value.метод toString())


[no name]

для получения дополнительных разъяснений дорогой друг, у меня есть база данных MS Access, столбцы которой я устанавливаю в виде чисел.база данных извлекается в представление datagrid. поэтому, когда я выбираю некоторые ячейки и удаляю их, они должны быть пустыми . то есть нулевой . это происходит, когда я делаю столбцы базы данных как text.by использование кода


строка i = ""; ячейка.Value = (object)i; но для чисел, что я должен сделать, чтобы получить то же самое поведение

[no name]

Я просто хочу заменить удаленные ячейки ничем