|
| |

VB.NET - Ein- und Umsteiger| Re: Suche nach Control | |  | | Autor: Manfred X | | Datum: 09.11.10 06:36 |
| Hier mal ein einfaches Beispiel für eine Klasse, die eine Datatable
abschnittsweise an mehrere Datagrids binden kann - nur Readonly
und für die Anzeige. Die Funktions-Prototypen, die IBindingList-
Interface automatisch einfügt und die nicht benötigt werden, habe
ich im Code weggelassen. (Werden andere Schnittstellen-
Funktionen benötigt - z.B. Editieren, Sortieren - müssen weitere
Funktionen der IBindingList bzw. IList in der Klasse implementiert werden.)
Public Class clsTableBinder
Implements System.ComponentModel.IBindingList
Dim _dt As DataTable, _dv As DataView
Dim _ug, _og As Integer
Public Sub New(ByVal dt As DataTable, _
ByVal ug As Integer, ByVal og As Integer)
If dt Is Nothing Then Throw New ArgumentNullException
_dt = dt : _ug = ug : _og = og
If _ug < 0 Or _ug > _og Then Throw New ArgumentException
If _og => dt.Rows.Count Then Throw New ArgumentException
_dv = New DataView(dt)
End Sub
Public ReadOnly Property Count As Integer _
Implements System.Collections.ICollection.Count
Get
Return _og - _ug + 1
End Get
End Property
Default Public Property Item(ByVal index As Integer) As Object _
Implements System.Collections.IList.Item
Get
Return _dv(_ug + index)
End Get
Set(ByVal value As Object)
End Set
End Property
Public ReadOnly Property AllowEdit As Boolean _
Implements System.ComponentModel.IBindingList.AllowEdit
Get
Return False
End Get
End Property
Public ReadOnly Property AllowNew As Boolean _
Implements System.ComponentModel.IBindingList.AllowNew
Get
Return False
End Get
End Property
Public ReadOnly Property AllowRemove As Boolean _
Implements System.ComponentModel.IBindingList.AllowRemove
Get
Return False
End Get
End Property
Public ReadOnly Property SupportsSorting As Boolean _
Implements System.ComponentModel.IBindingList.SupportsSorting
Get
Return False
End Get
End Property
'Für die übrigen Schnittstellen-Funktionen wird
'kein Code benötigt - Rümpfe deshalb hier weggelassen
End Class Anwendungsbeispiel.
Eine Datatable wird an drei Datagridviews gebunden:
Public Class frmSplitGrid
Dim dt As New DataTable
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
dt.Columns.Add("Spalte", GetType(Integer))
dt.Columns.Add("Text", GetType(String))
For i As Integer = 0 To 99
Dim r As DataRow = dt.NewRow
r(0) = i : r(1) = "Zeile " + CStr(i)
dt.Rows.Add(r)
Next i
DataGridView1.DataSource = New clsTableBinder(dt, 0, 32)
DataGridView2.DataSource = New clsTableBinder(dt, 33, 65)
DataGridView3.DataSource = New clsTableBinder(dt, 66, 99)
End Sub
End Class
Beitrag wurde zuletzt am 09.11.10 um 06:41:35 editiert. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|