S
Serrr
уважаемые, чё-т не получается у меня..
есть datagridview, связанный с БД (*.mdb)
запросы к ней делал заранее в конструкторе, в тексте программы только применял уже заготовленные запросы.
эта БД - учёт работников, находящихся в отвлечении (отпуск, больничный...), ну и соответственно замысел был такой - кто в отвлечении, у того в datagridview ячейка с фамилией меняет свой цвет. Раскраску ячеек поставил на событие databindingcomplete. Когда в базе 10-20 человек, то обрабатывается она более-менее (скорость), но человек-то 900.. Как только всех в базу загнал - начала тормозить. А на работе компы вообще лом сплошной. Помогите пож. кто чем может, а? Вот текст обработки databindingcomplete.
Private Sub T1DGV_DataBindingComplete _
(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) _
Handles T1DGV.DataBindingComplete
Dolzhnik.Visible = False
Dim cel As DataGridViewRow
For Each cel In T1DGV.Rows
If cel.Cells(8).Value Then ' маркированые (поле со значением Boolean)
cel.DefaultCellStyle.ForeColor = Color.Black
cel.DefaultCellStyle.SelectionForeColor = Color.Black
cel.DefaultCellStyle.Font = Fnt ' fnt - стиль font-а
cel.HeaderCell.Style.BackColor = Color.PaleTurquoise
If Not flag Then
flag = True
End If
End If
Dim cd = OtvTableAdapter.TnS(ZupDS.otv, cel.Cells.Item(0).Value) ' если в табл отвлеч-х есть такой ТН
If cd = 1 Then
Call PainCell(cel.Cells.Item(0), Color.Yellow, Color.Black, Color.Black)
End If
Dim ce = KosTableAdapter.SelQ(ZupDS.Kos, cel.Cells.Item(0).Value) ' если в табл косяков есть такой tn
If ce = 1 Then
Call PainCell(cel.Cells.Item(1), Color.Gold, Color.Red, Color.Red)
'непосредственная окраска заданным цветом (столбец, backcolor, forecolor, selection backcolor, selectionforecolor)
End If
Next
DelMark.Visible = flag ' delmark - кнопка для снятия всех true в boolean столбце
End Sub ' раскраска отвлечённых (сюда же и прочих)
есть datagridview, связанный с БД (*.mdb)
запросы к ней делал заранее в конструкторе, в тексте программы только применял уже заготовленные запросы.
эта БД - учёт работников, находящихся в отвлечении (отпуск, больничный...), ну и соответственно замысел был такой - кто в отвлечении, у того в datagridview ячейка с фамилией меняет свой цвет. Раскраску ячеек поставил на событие databindingcomplete. Когда в базе 10-20 человек, то обрабатывается она более-менее (скорость), но человек-то 900.. Как только всех в базу загнал - начала тормозить. А на работе компы вообще лом сплошной. Помогите пож. кто чем может, а? Вот текст обработки databindingcomplete.
Код:
Private Sub T1DGV_DataBindingComplete _
(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) _
Handles T1DGV.DataBindingComplete
Dolzhnik.Visible = False
Dim cel As DataGridViewRow
For Each cel In T1DGV.Rows
If cel.Cells(8).Value Then ' маркированые (поле со значением Boolean)
cel.DefaultCellStyle.ForeColor = Color.Black
cel.DefaultCellStyle.SelectionForeColor = Color.Black
cel.DefaultCellStyle.Font = Fnt ' fnt - стиль font-а
cel.HeaderCell.Style.BackColor = Color.PaleTurquoise
If Not flag Then
flag = True
End If
End If
Dim cd = OtvTableAdapter.TnS(ZupDS.otv, cel.Cells.Item(0).Value) ' если в табл отвлеч-х есть такой ТН
If cd = 1 Then
Call PainCell(cel.Cells.Item(0), Color.Yellow, Color.Black, Color.Black)
End If
Dim ce = KosTableAdapter.SelQ(ZupDS.Kos, cel.Cells.Item(0).Value) ' если в табл косяков есть такой tn
If ce = 1 Then
Call PainCell(cel.Cells.Item(1), Color.Gold, Color.Red, Color.Red)
'непосредственная окраска заданным цветом (столбец, backcolor, forecolor, selection backcolor, selectionforecolor)
End If
Next
DelMark.Visible = flag ' delmark - кнопка для снятия всех true в boolean столбце
End Sub ' раскраска отвлечённых (сюда же и прочих)
Код: