470,815 Members | 1,293 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,815 developers. It's quick & easy.

refresh performance in datagrid - big problem

sp
Hello

I have a problem with the refresh performance in datagrid –

when datagrid is being shown it is so slow that I can see one by one
cells is drawn

-datagrid contains about 35x40 of cells - they are generated through the
odswierz_frekfencje() function (listed below)-

-other datagrid – showing data from datasets are ok

-I suppose I have made some mistakes, could you give me a hint? which?
Sorry for crosspost!
Public Sub odswierz_frekfencje()

If status = True Then

' Me.DataGridView1.BeginEdit(False)

Dim miesiac, rok, liczba_dni As Integer

miesiac = Me.DateTimePicker1.Value.Month

rok = Me.DateTimePicker1.Value.Year

If miesiac = 1 Or miesiac = 3 Or miesiac = 5 Or miesiac = 7
Or miesiac = 8 Or miesiac = 10 Or miesiac = 12 Then

liczba_dni = 31

End If

If miesiac = 4 Or miesiac = 6 Or miesiac = 9 Or miesiac =
11 Then

liczba_dni = 30

End If

If miesiac = 2 And rok / 4 <Math.Floor(rok / 4) Then

liczba_dni = 28

End If

If miesiac = 2 And rok / 4 = Math.Floor(rok / 4) Then

liczba_dni = 29

End If

Dim id_klasy, id_ucznia, i, j, liczba_ocen As Integer

'Dim pozycje() = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Dim buttonColumn As New DataGridViewButtonColumn

With buttonColumn

.HeaderText = "Dodaj:"

.Name = "dodaj"

.Text = "Dodaj:"

' Use the Text property for the button text for all
cells rather

' than using each cell's value as the text for its own
button.

.UseColumnTextForButtonValue = True

End With



id_klasy = klasa.SelectedValue.row.id_klasy

With DataGridView1

.Rows.Clear()

.Columns.Clear()

.Columns.Add("nr_dziennik", "Numer w dzienniku")

.Columns("nr_dziennik").DefaultCellStyle.Font = New
Font("Courier", 12, FontStyle.Bold, GraphicsUnit.Pixel)

.Columns("nr_dziennik").Width = 50

.Columns("nr_dziennik").AutoSizeMode =
DataGridViewAutoSizeColumnMode.None

.Columns("nr_dziennik").SortMode =
DataGridViewColumnSortMode.NotSortable

.Columns.Add("uczen", "uczen")

.Columns("uczen").AutoSizeMode =
DataGridViewAutoSizeColumnMode.AllCells

.Columns("uczen").DefaultCellStyle.Font = New
Font("Verdana", 12, FontStyle.Underline, GraphicsUnit.Pixel)

.Columns("uczen").DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleLeft

.Columns("uczen").SortMode =
DataGridViewColumnSortMode.NotSortable

.Columns.Add("id_ucznia", "id ucznia")

.Columns("id_ucznia").Visible = False

.Columns("id_ucznia").SortMode =
DataGridViewColumnSortMode.NotSortable

.Columns.Add("id_klasy", "id klasy")

.Columns("id_klasy").Visible = False

.Columns("id_klasy").SortMode =
DataGridViewColumnSortMode.NotSortable

.Columns.Add(buttonColumn)

.Columns("dodaj").Visible = False

.Columns("dodaj").SortMode =
DataGridViewColumnSortMode.NotSortable

.Rows.Add()

.Rows(0).Cells(0).ReadOnly = True

.Rows(0).Cells(1).ReadOnly = True

.Rows(0).Cells(2).ReadOnly = True

.Rows(0).Cells(3).ReadOnly = True

For j = 1 To liczba_dni

.Columns.Add(Str(j), Str(j))

.Columns(Str(j)).Width = 28

.Columns(Str(j)).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleCenter

.Columns(Str(j)).SortMode =
DataGridViewColumnSortMode.NotSortable

.Rows(0).Cells(j + 4).Style.BackColor =
My.Settings.Item("dtyg_B_" + Trim(Str(Weekday(Str(miesiac) + "/" +
Str(j) + "/" + Str(rok)))))

.Rows(0).Cells(j + 4).Style.ForeColor =
My.Settings.Item("dtyg_F_" + Trim(Str(Weekday(Str(miesiac) + "/" +
Str(j) + "/" + Str(rok)))))

.Rows(0).Cells(j + 4).Value =
My.Settings.Item("dtyg_" + Trim(Str(Weekday(Str(miesiac) + "/" + Str(j)
+ "/" + Str(rok)))))

Next

End With

vuczniowieBindingSource.Filter = "id_klasy='" +
Str(id_klasy) + "'"

vuczniowieBindingSource.Sort = "nr_dziennik"

liczba_ocen = 0

Try
Me.Pobierz_frekfencjeTableAdapter.Fill(Me.Blizej_s zkolyDataSet.pobierz_frekfencje,
New System.Nullable(Of Integer)(CType(id_klasy, Integer)), New
System.Nullable(Of Integer)(CType(miesiac, Integer)), New
System.Nullable(Of Integer)(CType(rok, Integer)))

Catch ex As System.Exception

blad.pokaz(ex.Message)

End Try

For i = 0 To vuczniowieBindingSource.Count - 1

id_ucznia = vuczniowieBindingSource.Item(i).row.id_ucznia

With DataGridView1

.Rows.Add()

.Rows(i + 1).Cells(0).Value =
vuczniowieBindingSource.Item(i).row.nr_dziennik

.Rows(i + 1).Cells(1).Value =
vuczniowieBindingSource.Item(i).row.uczen

.Rows(i + 1).Cells(2).Value = id_ucznia

.Rows(i + 1).Cells(3).Value = id_klasy

End With

'MsgBox(Pobierz_ocenyBindingSource.Count)

Me.frekfencjaBindingSource1.Filter = "id_ucznia='" +
Str(id_ucznia) + "'"

For j = 0 To Me.frekfencjaBindingSource1.Count - 1

With frekfencjaBindingSource1.Item(j).row

If .spoznienie = True Then

DataGridView1.Rows(i + 1).Cells(.liczba_dni
+ 4).Value = "S"

If .status 0 Then

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor =
My.Settings.frek_spoznienie_poszlo

Else

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor = My.Settings.frek_spoznienie

End If

Else

If .ilosc_godzin 0 Then

Try

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Value += .ilosc_godzin

Catch ex As Exception

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Value = .ilosc_godzin

End Try

Else

DataGridView1.Rows(i + 1).Cells(.liczba_dni
+ 4).Value = "X"

End If

If .usprawiedliwiona = True Then

If .status 0 Then

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor = My.Settings.frek_nobecny_poszlo

Else

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor = My.Settings.frek_nobecny

End If

Else

If .status 0 Then

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor = My.Settings.frek_nnobecny_poszlo

Else

DataGridView1.Rows(i +
1).Cells(.liczba_dni + 4).Style.BackColor = My.Settings.frek_nnobecny

End If

End If

End If



End With

Next

Next

id_ucznia = -1

Try


Me.Pobierz_frekfencje_txtTableAdapter.Fill(Me.Bliz ej_szkolyDataSet.pobierz_frekfencje_txt,
New System.Nullable(Of Integer)(CType(id_ucznia, Integer)), miesiac, rok)

Catch ex As System.Exception

blad.pokaz(ex.Message)

End Try

Me.DataGridView1.Visible = True

End If

End Sub
Jul 11 '06 #1
1 2427
Hi,

I have added a reply to you in microsoft.public.dotnet.languages.vb
newsgroup, please check it there. Thanks.

Best regards,
Jeffrey Tan
Microsoft Online Community Support
==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.

Jul 12 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Marcus | last post: by
1 post views Thread by aliansari | last post: by
1 post views Thread by Andre | last post: by
7 posts views Thread by Juan Romero | last post: by
reply views Thread by Erik | last post: by
10 posts views Thread by jaYPee | last post: by
2 posts views Thread by Dan | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.