Hi Board,
bin soweit fertig mit der Klasse, dank der zahlreichen Hilfe hier und in ADO.Net Forum möchte Ich diese auch niemandem vorenthalten.
erstmal die Form in der es zum einsatz kommt:
Public WithEvents Chooser As choosegrid
Private Sub gridchooser_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Me.OleDbDataAdapter1.Fill(Me.DS_setting1)
Me.Chooser = New choosegrid(Me.DS_setting1.sprachen, TextBox1)
Me.Controls.Add(Me.Chooser)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
If Chooser.Visible = False Then
Chooser.Visible = True
ElseIf Chooser.Visible = True Then
Chooser.Visible = False
End If
End Sub
Private Sub chooser_chosen() Handles Chooser.chosen
Label1.Text = Chooser.aktdatarow.Item("deutsch")
Label2.Text = Chooser.aktdatarow.Item("englisch")
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles TextBox1.TextChanged
Me.Chooser.SetRowFilter("textfeldname like '%" & TextBox1.Text & "%' or" & _
"erscheinungsort like '%" & TextBox1.Text & "%' or deutsch like '%" & _
TextBox1.Text & "%'")
End SubNun die Klasse:
Public Class choosegrid
Inherits System.Windows.Forms.Panel
Dim datagrid2 As New System.Windows.Forms.DataGrid
Dim strreturncol As String
Dim dtchoosedata As DataTable
Public Property returncol() As String
Public Property choosedata() As DataTable
Public ReadOnly Property aktdatarow() As DataRowView
Get
Dim cm As CurrencyManager = CType(BindingContext( _
datagrid2.DataSource), CurrencyManager)
Dim drv As DataRowView = CType(cm.List(datagrid2.CurrentRowIndex), _
DataRowView)
'tmp_datarow = Me.choosedata.Rows.Find(datagrid2.Item(
' datagrid2.CurrentRowIndex, bycolumnindex))
Return drv
End Get
End Property
Public Event chosen()
Public Sub AddControls()
Me.Controls.Add(Me.datagrid2)
Me.BorderStyle = BorderStyle.FixedSingle
Me.datagrid2.BorderStyle = BorderStyle.None
Me.datagrid2.FlatMode = True
datagrid2.DataMember = ""
Me.datagrid2.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.datagrid2.Location = New System.Drawing.Point(0, 0)
Me.datagrid2.Name = "DataGrid2"
Me.datagrid2.Size = New System.Drawing.Size(Me.Width, Me.Height)
Me.datagrid2.RowHeadersVisible = False
Me.datagrid2.ColumnHeadersVisible = False
Me.datagrid2.ReadOnly = True
Me.datagrid2.CaptionVisible = False
Me.datagrid2.TabIndex = 0
AddHandler datagrid2.MouseUp, AddressOf Returnvalue
End Sub
Private Sub Returnvalue(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs)
RaiseEvent chosen()
Me.Visible = False
End Sub
Public Sub SetRowFilter(ByVal filterstring As String)
dtchoosedata.DefaultView.RowFilter = filterstring
If Not Me.Visible Then Me.Visible = True
End Sub
Public Sub New(ByVal dtauswahl As DataTable, ByVal parentcontrol As _
Object, Optional ByVal width As Integer = 500, Optional ByVal height As _
Integer = 300)
MyBase.New()
strreturncol = returncol
dtchoosedata = dtauswahl
MyBase.Location = New System.Drawing.Point(CType(parentcontrol, _
System.Windows.Forms.TextBox).Left, CType(parentcontrol, _
System.Windows.Forms.TextBox).Top + CType(parentcontrol, _
System.Windows.Forms.TextBox).Height)
MyBase.Name = "Panel3"
datagrid2.DataSource = choosedata
MyBase.Size = New System.Drawing.Size(width, height)
Visible = False
Me.AddControls()
End Sub
End Class Nun doch noch ne Frage:
Was wäre notwendig, damit ich jetzt ein Steuerelement draus mache was ich zur Entwurfszeit aus der Toolbox auf meine Form ziehen kann? |