Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Автонумерация строк в DataGridView Добавлено: 08.01.11 17:53  

Автор вопроса:  Михаил
Private Sub NumberAllRows() ' Add row headers.
        If grd.RowCount > 0 Then
            For i As Integer = 0 To grd.Rows.Count - 1
                grd.Rows(i).HeaderCell.Value = i.ToString()
            Next i
        End If
    End Sub
 
    Private Sub grd_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles grd.RowsAdded
        NumberAllRows()
    End Sub
    Private Sub grd_RowsRemoved(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsRemovedEventArgs) Handles grd.RowsRemoved
        NumberAllRows()
    End Sub

Этот код номерует строки в гриде.. Но верхняя строка всегда 0.(((
Мне нужно - чтобы она называлась 1 (первая).
Помогите пожалуйста решить такую проблему. Спасиба заранее...

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #1
Добавлено: 08.01.11 20:46
мда...
  1. Private Sub NumberAllRows() ' Add row headers.
  2.         If grd.RowCount > 0 Then
  3.             For i As Integer = 1 To grd.Rows.Count
  4.                 grd.Rows(i-1).HeaderCell.Value = i.ToString()
  5.             Next i
  6.         End If
  7.     End Sub


или
  1. Private Sub NumberAllRows() ' Add row headers.
  2.         If grd.RowCount > 0 Then
  3.             For i As Integer = 0 To grd.Rows.Count - 1
  4.                 grd.Rows(i).HeaderCell.Value = CStr(i+1)
  5.             Next i
  6.         End If
  7.     End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Михаил



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 09.01.11 01:45
Дима! Спасибо огромное за ответ!!!!! Оказывается решений тут гора и маленькая кучка... У меня палучилось во так:
  1. Private Sub NumberAllRows() ' Add row headers.
  2.         If grd.RowCount > 0 Then
  3.             For i As Integer = 0 To grd.Rows.Count - 1
  4.                 grd.Rows(i).HeaderCell.Value = Val(i + 1).ToString
  5.             Next i
  6.         End If
  7.     End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #3
Добавлено: 09.01.11 15:29
  1. Val(i + 1).ToString

ни к чему.
  1. CStr(i+1)
- интеджер преобразуем в строку. А надо ли вообще преобразовывать? Может, достаточно
  1. grd.Rows(i-1).HeaderCell.Value = i+1

Ответить

Номер ответа: 4
Автор ответа:
 Михаил



Вопросов: 1
Ответов: 3
 Профиль | | #4 Добавлено: 10.01.11 00:01
Дмитрий Юпатов пишет:
HeaderCell.Value = i+1

недостаточно, я с этим проколупалса долго... я так подозреваю - что для обычного столбца было бы и достаточно, а для HeaderCell нет... сейчас попробую еще и так... потом напишу..

Ответить

Номер ответа: 5
Автор ответа:
 Михаил



Вопросов: 1
Ответов: 3
 Профиль | | #5 Добавлено: 10.01.11 00:02
я извиняюсь, но возник вопрос опять по-моему на эту тему... по крайней мере - чувствую - что где то приблизительно рядом...
Как посчитать сумму всех полей в определенной колонке??? или сумму по столбцу... как угодно... Подскажите пожалуйста, а то сам никак(((((

Ответить

Номер ответа: 6
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #6
Добавлено: 03.02.12 00:36
Что-то вроде
  1. Dim Sum as Single=0
  2. For i As Integer = 0 To grd.Rows.Count - 1
  3.                 Sum=Sum+csng(grd.Rows(i).Item(номер столбца).Value)
  4.             Next i

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам