Hallo
ich arbeite mit Visual Studio- VB.net und haben folgendes Problem:
Für eine Ergebnis Darstellung möchte ich 3 Formulare anzeigen in denen je ein Datagridview Element integriert ist.
In Formular 1 sollen die TopTen stehen
in Formular 2 sollen die Plätze ab 11 bis n stehen
Da alle 2 Datagridview Elemente vom Format her exakt gleich sind, möchte ich nur einmal einen Code aufrufen um sie zu editieren. Dann - in Abhängigkeit des jeweiligen Formulars - 3 verschiede SQL Statements ausführen und dann das Dataview entsprechend füllen. Danach dann eine Anbindung an das jeweilige Datagridview.
Nun könnte ich hingehen, zweimal für jedes Datagridview die Formatierung und die Befüllung des Dataviews. Diese möchte ich nicht und hoffe dass ich z. B. das Dataview an das jeweilige Form übergeben kann.
Mit untenaufgeführten code, füllte er beim Timer beide Forms mit den gleichen DAten und formartiert wechselseitig nur ein Datagridview.
Vielen Dank im Voraus für Eure Hilfe
MFG Driwet
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'aktualisieren()
Formname = "DressurErgebnisTopTen"
AnzeigeDressurTopTen(Me.DataGridView1, Formname)
End Sub
Public Sub AnzeigeDressurTopTen(ByVal dgv As DataGridView, ByVal fmn As String)
Dim sqlstr As String
If fmn = "ErgebnisDressurTopTen" Then
sqlstr = sqlstrdreerg
Else
sqlstr = sqlstrdreergkopfnr
End If
Dim dawerg As New SqlDataAdapter(sqlstr, con)
Dim ra As Integer = 0, rapu As Integer = 0, ergpu As Decimal, Marker As String = "", za As Integer = 0
'MsgBox(fmn)
dtwerg.Clear()
dawerg.Fill(dtwerg)
For Each dtrw As DataRow In dtwerg.Rows
dtrw("dre_ergebnisstring") = Trim(dtrw("dre_ergebnisstring"))
dtrw("dre_prozent") = Trim(dtrw("dre_prozent"))
Next
If dtwerg.Columns("Team") IsNot Nothing Then
dtwerg.Columns.Remove("Team")
dtwerg.Columns.Remove("dre_Rang")
dtwerg.Columns.Remove("Diff")
dtwerg.Columns.Remove("dre_Prozent_Anz")
dtwerg.Columns.Remove("dre1_Prozent_Rang")
dtwerg.Columns.Remove("dre2_Prozent_Rang")
dtwerg.Columns.Remove("dre3_Prozent_Rang")
dtwerg.Columns.Add("Team", GetType(Image))
dtwerg.Columns.Add("dre_Rang", GetType(String))
dtwerg.Columns.Add("Diff", GetType(String))
dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
Else
dtwerg.Columns.Add("Team", GetType(Image))
dtwerg.Columns.Add("dre_Rang", GetType(String))
dtwerg.Columns.Add("Diff", GetType(String))
dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
End If
For I As Integer = 1 To anzahl_richter + 1
If I = 1 Then 'Hier die gesamt Summe
Spalte1 = "dre_prozent"
spalte2 = "dre_rang"
sort = "Dre_Prozent desc"
ElseIf I = 2 Then ' HIer Richter1
Spalte1 = "dre1_prozent"
spalte2 = "dre1_Prozent_rang"
sort = "Dre1_Prozent desc"
ElseIf I = 3 Then ' Hier Richter 2
Spalte1 = "dre2_prozent"
spalte2 = "dre2_Prozent_rang"
sort = "Dre2_Prozent desc"
ElseIf I = 4 Then 'Hier Richgter 3
Spalte1 = "dre3_prozent"
spalte2 = "dre3_Prozent_rang"
sort = "Dre3_Prozent desc"
End If
RangierungDre(dtwerg, Spalte1, spalte2, sort) 'sheht in Formatierungen
Next
Dim dvwerg As New DataView(dtwerg)
dvwerg.Sort = "dre_Prozent desc"
For Each rw As DataRow In dtwerg.Rows
If rw("feinat") Is DBNull.Value Then
rw("feinat") = "GER"
End If
Var = rw("feinat").ToString
Var = flaggen + "3" + Var + ".jpg"
Dim Ico As Image = Image.FromFile(Var)
' Ico = Image.FromFile(rei)
rw("Team") = Ico
Next
dgv.DataSource = dvwerg
dgv.Width *= 8
dgv.Dock = DockStyle.Fill
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True
dgv.ColumnHeadersHeight = 50
dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders
dgv.Columns.Remove("dre1_prozent")
dgv.Columns.Remove("dre2_prozent")
dgv.Columns.Remove("dre3_prozent")
dgv.Columns.Remove("sdlfnr")
dgv.Columns.Remove("dre_ergebnis")
dgv.Columns.Remove("dre_prozent")
dgv.Columns.Remove("vname")
Dim di As Integer = 0
'Rang
dgv.Columns("dre_Rang").HeaderText = "Rank:"
dgv.Columns("dre_Rang").MinimumWidth = "10"
dgv.Columns("dre_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_Rang").DisplayIndex = di
di = di + 1
'Flagge
dgv.Columns("Team").MinimumWidth = "20"
dgv.Columns("Team").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Team").DisplayIndex = di
di = di + 1
'FeiNat
dgv.Columns("Feinat").HeaderText = "Nat."
dgv.Columns("Feinat").MinimumWidth = 20
dgv.Columns("Feinat").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("FeiNAt").DisplayIndex = di
di = di + 1
'Kopfnr
dgv.Columns("kopfnr").HeaderText = "No:"
dgv.Columns("kopfnr").Width = "10"
dgv.Columns("kopfnr").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("kopfnr").DisplayIndex = di
di = di + 1
'Pferd
dgv.Columns("pfnam").HeaderText = "Horse:"
dgv.Columns("pfnam").MinimumWidth = "10"
dgv.Columns("Pfnam").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Pfnam").DisplayIndex = di
di = di + 1
'Reiter
dgv.Columns("Name").HeaderText = "Rider:"
dgv.Columns("Name").MinimumWidth = "10"
dgv.Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Name").DisplayIndex = di
di = di + 1
'Verei
'dgv.Columns("Vname").HeaderText = "Club"
'dgv.Columns("Vname").MinimumWidth = 10
'dgv.Columns("Vname").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
'dgv.Columns("Vname").DisplayIndex = di
'di = di + 1
'der_summe
dgv.Columns("Dre_summe").HeaderText = "Good" + vbCrLf + "Marks"
dgv.Columns("Dre_summe").MinimumWidth = 10
dgv.Columns("Dre_summe").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Dre_summe").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_summe").DisplayIndex = di
di = di + 1
'DreProzent
dgv.Columns("Dre_prozent_anz").HeaderText = "Average" + vbCrLf + "%"
dgv.Columns("Dre_prozent_anz").MinimumWidth = 10
dgv.Columns("Dre_Prozent_anz").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Dre_Prozent_anz").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_prozent_anz").DisplayIndex = di
di = di + 1
'Dre1_prozent_rang
dgv.Columns("dre1_prozent_Rang").HeaderText = "Ju. at: " + pos_richter1 + vbCrLf + richter1
dgv.Columns("dre1_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre1_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre1_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre1_prozent_Rang").DisplayIndex = di
di = di + 1
'Dre2_prozent_Rang
dgv.Columns("dre2_prozent_Rang").HeaderText = "Ju. at: " + pos_richter2 + vbCrLf + richter2
dgv.Columns("dre2_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre2_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre2_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre2_prozent_Rang").DisplayIndex = di
di = di + 1
If anzahl_richter = 2 Then
dgv.Columns.Remove("dre3_prozent_Rang")
Else
'Dre3_prozent_Rang
dgv.Columns("dre3_prozent_Rang").HeaderText = "Ju. at: " + pos_richter3 + vbCrLf + richter3
dgv.Columns("dre3_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre3_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre3_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre3_prozent_Rang").DisplayIndex = di
di = di + 1
End If
'Punkte
dgv.Columns("dre_ergebnisstring").HeaderText = "Points:"
dgv.Columns("dre_ergebnisstring").MinimumWidth = 10
dgv.Columns("dre_ergebnisstring").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("dre_ergebnisstring").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre_ergebnisstring").DisplayIndex = di
di = di + 1
'Diff
dgv.Columns("Diff").HeaderText = "Diff"
dgv.Columns("Diff").MinimumWidth = 10
dgv.Columns("Diff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Diff").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Diff").DisplayIndex = di
For i As Integer = 0 To dgv.Rows.Count - 1
Dim ic As DataGridViewImageCell = CType(dgv.Rows(i).Cells("Team"), DataGridViewImageCell)
ic.ImageLayout = DataGridViewImageCellLayout.Zoom
Next
End Sub
ich arbeite mit Visual Studio- VB.net und haben folgendes Problem:
Für eine Ergebnis Darstellung möchte ich 3 Formulare anzeigen in denen je ein Datagridview Element integriert ist.
In Formular 1 sollen die TopTen stehen
in Formular 2 sollen die Plätze ab 11 bis n stehen
Da alle 2 Datagridview Elemente vom Format her exakt gleich sind, möchte ich nur einmal einen Code aufrufen um sie zu editieren. Dann - in Abhängigkeit des jeweiligen Formulars - 3 verschiede SQL Statements ausführen und dann das Dataview entsprechend füllen. Danach dann eine Anbindung an das jeweilige Datagridview.
Nun könnte ich hingehen, zweimal für jedes Datagridview die Formatierung und die Befüllung des Dataviews. Diese möchte ich nicht und hoffe dass ich z. B. das Dataview an das jeweilige Form übergeben kann.
Mit untenaufgeführten code, füllte er beim Timer beide Forms mit den gleichen DAten und formartiert wechselseitig nur ein Datagridview.
Vielen Dank im Voraus für Eure Hilfe
MFG Driwet
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'aktualisieren()
Formname = "DressurErgebnisTopTen"
AnzeigeDressurTopTen(Me.DataGridView1, Formname)
End Sub
Public Sub AnzeigeDressurTopTen(ByVal dgv As DataGridView, ByVal fmn As String)
Dim sqlstr As String
If fmn = "ErgebnisDressurTopTen" Then
sqlstr = sqlstrdreerg
Else
sqlstr = sqlstrdreergkopfnr
End If
Dim dawerg As New SqlDataAdapter(sqlstr, con)
Dim ra As Integer = 0, rapu As Integer = 0, ergpu As Decimal, Marker As String = "", za As Integer = 0
'MsgBox(fmn)
dtwerg.Clear()
dawerg.Fill(dtwerg)
For Each dtrw As DataRow In dtwerg.Rows
dtrw("dre_ergebnisstring") = Trim(dtrw("dre_ergebnisstring"))
dtrw("dre_prozent") = Trim(dtrw("dre_prozent"))
Next
If dtwerg.Columns("Team") IsNot Nothing Then
dtwerg.Columns.Remove("Team")
dtwerg.Columns.Remove("dre_Rang")
dtwerg.Columns.Remove("Diff")
dtwerg.Columns.Remove("dre_Prozent_Anz")
dtwerg.Columns.Remove("dre1_Prozent_Rang")
dtwerg.Columns.Remove("dre2_Prozent_Rang")
dtwerg.Columns.Remove("dre3_Prozent_Rang")
dtwerg.Columns.Add("Team", GetType(Image))
dtwerg.Columns.Add("dre_Rang", GetType(String))
dtwerg.Columns.Add("Diff", GetType(String))
dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
Else
dtwerg.Columns.Add("Team", GetType(Image))
dtwerg.Columns.Add("dre_Rang", GetType(String))
dtwerg.Columns.Add("Diff", GetType(String))
dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
End If
For I As Integer = 1 To anzahl_richter + 1
If I = 1 Then 'Hier die gesamt Summe
Spalte1 = "dre_prozent"
spalte2 = "dre_rang"
sort = "Dre_Prozent desc"
ElseIf I = 2 Then ' HIer Richter1
Spalte1 = "dre1_prozent"
spalte2 = "dre1_Prozent_rang"
sort = "Dre1_Prozent desc"
ElseIf I = 3 Then ' Hier Richter 2
Spalte1 = "dre2_prozent"
spalte2 = "dre2_Prozent_rang"
sort = "Dre2_Prozent desc"
ElseIf I = 4 Then 'Hier Richgter 3
Spalte1 = "dre3_prozent"
spalte2 = "dre3_Prozent_rang"
sort = "Dre3_Prozent desc"
End If
RangierungDre(dtwerg, Spalte1, spalte2, sort) 'sheht in Formatierungen
Next
Dim dvwerg As New DataView(dtwerg)
dvwerg.Sort = "dre_Prozent desc"
For Each rw As DataRow In dtwerg.Rows
If rw("feinat") Is DBNull.Value Then
rw("feinat") = "GER"
End If
Var = rw("feinat").ToString
Var = flaggen + "3" + Var + ".jpg"
Dim Ico As Image = Image.FromFile(Var)
' Ico = Image.FromFile(rei)
rw("Team") = Ico
Next
dgv.DataSource = dvwerg
dgv.Width *= 8
dgv.Dock = DockStyle.Fill
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True
dgv.ColumnHeadersHeight = 50
dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders
dgv.Columns.Remove("dre1_prozent")
dgv.Columns.Remove("dre2_prozent")
dgv.Columns.Remove("dre3_prozent")
dgv.Columns.Remove("sdlfnr")
dgv.Columns.Remove("dre_ergebnis")
dgv.Columns.Remove("dre_prozent")
dgv.Columns.Remove("vname")
Dim di As Integer = 0
'Rang
dgv.Columns("dre_Rang").HeaderText = "Rank:"
dgv.Columns("dre_Rang").MinimumWidth = "10"
dgv.Columns("dre_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_Rang").DisplayIndex = di
di = di + 1
'Flagge
dgv.Columns("Team").MinimumWidth = "20"
dgv.Columns("Team").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Team").DisplayIndex = di
di = di + 1
'FeiNat
dgv.Columns("Feinat").HeaderText = "Nat."
dgv.Columns("Feinat").MinimumWidth = 20
dgv.Columns("Feinat").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("FeiNAt").DisplayIndex = di
di = di + 1
'Kopfnr
dgv.Columns("kopfnr").HeaderText = "No:"
dgv.Columns("kopfnr").Width = "10"
dgv.Columns("kopfnr").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("kopfnr").DisplayIndex = di
di = di + 1
'Pferd
dgv.Columns("pfnam").HeaderText = "Horse:"
dgv.Columns("pfnam").MinimumWidth = "10"
dgv.Columns("Pfnam").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Pfnam").DisplayIndex = di
di = di + 1
'Reiter
dgv.Columns("Name").HeaderText = "Rider:"
dgv.Columns("Name").MinimumWidth = "10"
dgv.Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("Name").DisplayIndex = di
di = di + 1
'Verei
'dgv.Columns("Vname").HeaderText = "Club"
'dgv.Columns("Vname").MinimumWidth = 10
'dgv.Columns("Vname").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
'dgv.Columns("Vname").DisplayIndex = di
'di = di + 1
'der_summe
dgv.Columns("Dre_summe").HeaderText = "Good" + vbCrLf + "Marks"
dgv.Columns("Dre_summe").MinimumWidth = 10
dgv.Columns("Dre_summe").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Dre_summe").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_summe").DisplayIndex = di
di = di + 1
'DreProzent
dgv.Columns("Dre_prozent_anz").HeaderText = "Average" + vbCrLf + "%"
dgv.Columns("Dre_prozent_anz").MinimumWidth = 10
dgv.Columns("Dre_Prozent_anz").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Dre_Prozent_anz").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Dre_prozent_anz").DisplayIndex = di
di = di + 1
'Dre1_prozent_rang
dgv.Columns("dre1_prozent_Rang").HeaderText = "Ju. at: " + pos_richter1 + vbCrLf + richter1
dgv.Columns("dre1_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre1_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre1_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre1_prozent_Rang").DisplayIndex = di
di = di + 1
'Dre2_prozent_Rang
dgv.Columns("dre2_prozent_Rang").HeaderText = "Ju. at: " + pos_richter2 + vbCrLf + richter2
dgv.Columns("dre2_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre2_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre2_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre2_prozent_Rang").DisplayIndex = di
di = di + 1
If anzahl_richter = 2 Then
dgv.Columns.Remove("dre3_prozent_Rang")
Else
'Dre3_prozent_Rang
dgv.Columns("dre3_prozent_Rang").HeaderText = "Ju. at: " + pos_richter3 + vbCrLf + richter3
dgv.Columns("dre3_prozent_Rang").MinimumWidth = 10
dgv.Columns("dre3_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
dgv.Columns("dre3_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre3_prozent_Rang").DisplayIndex = di
di = di + 1
End If
'Punkte
dgv.Columns("dre_ergebnisstring").HeaderText = "Points:"
dgv.Columns("dre_ergebnisstring").MinimumWidth = 10
dgv.Columns("dre_ergebnisstring").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("dre_ergebnisstring").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("dre_ergebnisstring").DisplayIndex = di
di = di + 1
'Diff
dgv.Columns("Diff").HeaderText = "Diff"
dgv.Columns("Diff").MinimumWidth = 10
dgv.Columns("Diff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
dgv.Columns("Diff").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("Diff").DisplayIndex = di
For i As Integer = 0 To dgv.Rows.Count - 1
Dim ic As DataGridViewImageCell = CType(dgv.Rows(i).Cells("Team"), DataGridViewImageCell)
ic.ImageLayout = DataGridViewImageCellLayout.Zoom
Next
End Sub