Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18506

TableAdapterManager tipizzato come proprietà di un UserControl

Newsgroups it.comp.lang.visual-basic
Date 2015-09-14 12:12 -0700
Message-ID <11e6196a-7b2b-465b-af58-aa03d6b79b65@googlegroups.com> (permalink)
Subject TableAdapterManager tipizzato come proprietà di un UserControl
From Sacman <d.camorani@gmail.com>

Show all headers | View raw


Buongiorno. Sicuramente esiste una soluzione migliore di quella che ho trovato io, ma comunque posto il quesito.
Per sostituire la classe ComboBox predefinita, che ha una serie di limitazioni, fra le quali il fatto che non sia possibile metterla in ReadOnly (non esiste tale proprietà per la classe ComboBox), ho pensato di creare un mia classe myTextBoxExtra, che altro non e' che un UserControl, con un Button e 2 TextBox. Il Button mi servirebbe per aprire un form ad elenco di inserimento, mentre i TextBox1 e' collegato al bingingsource dell'Usercontrol.
Fin qui tutto OK. La mia esigenza e' quella di associare il TextBox2 ad una seconda origine dati, che visualizzi un DisplayMember.
Per generalizzare l'Usercontrol, il TableAdapterManager dovrebbe essere passato come property e obJAdapert aggiornare la objDataSet.DataTable opportuna, che ho selezionato da designer modificando il campo proprieta' myTableAdapterManager. Vedere codice allegato:

Public Class myTextBoxExtra
    Dim objDataView As DataView
    Dim objDataSet As New dataDataSet
    Dim objRow As DataRowView
    Dim objAdapter As dataDataSetTableAdapters.LstProvincieTableAdapter

    Dim _DataSource As BindingSource
    Public Property myDataSource As BindingSource
        Get
            Return _DataSource
        End Get
        Set(ByVal value As BindingSource)
            _DataSource = value
        End Set
    End Property

    Dim _ValueMember As String
    Public Property myValueMember As String
        Get
            Return _ValueMember
        End Get
        Set(ByVal value As String)
            _ValueMember = value
        End Set
    End Property

    Dim _DisplayMember As String
    Public Property myDisplayMember As String
        Get
            Return _DisplayMember
        End Get
        Set(ByVal value As String)
            _DisplayMember = value
        End Set
    End Property

    Dim _TableAdapterManager As dataDataSetTableAdapters.TableAdapterManager
    Public Property myTableAdapterManager As dataDataSetTableAdapters.TableAdapterManager
        Get
            Return _TableAdapterManager
        End Get
        Set(ByVal value As dataDataSetTableAdapters.TableAdapterManager)
            _TableAdapterManager = value
        End Set
    End Property

    Private Sub myTextBoxExtra_BindingContextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.BindingContextChanged
        'Me.MyTextBox2.DataBindings.Add(New Binding("Text", Me.myDataSource, Me.myDisplayMember, Me.DataBindings.Item(0).FormattingEnabled, System.Windows.Forms.DataSourceUpdateMode.OnValidation, Nothing, Me.DataBindings.Item(0).FormatString))

    End Sub


    Private Sub myTextBoxExtra_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'MsgBox(myTableAdapterManager.Container.Components.Item(0).Site)
        MsgBox(MsgBox(Me.myTableAdapterManager.Container.Components.Item(0)))
        If Me.DataBindings.Count > 0 Then
            Me.MyTextBox1.DataBindings.Add(New Binding("Text", Me.DataBindings.Item(0).DataSource, Me.DataBindings.Item(0).BindingMemberInfo.BindingField, Me.DataBindings.Item(0).FormattingEnabled, System.Windows.Forms.DataSourceUpdateMode.OnValidation, Nothing, Me.DataBindings.Item(0).FormatString))
            Me.MyTextBox2.DataBindings.Add(New Binding("Text", Me.myDataSource, Me.myDisplayMember, Me.DataBindings.Item(0).FormattingEnabled, System.Windows.Forms.DataSourceUpdateMode.OnValidation, Nothing, Me.DataBindings.Item(0).FormatString))
        End If

    End Sub


    Private Sub MyTextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyTextBox1.TextChanged

        Dim itemFound As Integer = Me.myDataSource.Find(Me.myValueMember, Me.MyTextBox1.Text)
        If itemFound > 0 Then
            objDataView = New DataView(objDataSet.Tables(myDataSource.DataMember))
            objAdapter = New dataDataSetTableAdapters.LstProvincieTableAdapter
            
            objAdapter.Fill(objDataSet.LstProvincie)
            objRow = objDataView.Item(itemFound)
            Me.MyTextBox2.Text = objRow.Item(Me.myDisplayMember)
        Else
            Me.MyTextBox2.Text = ""
        End If


    End Sub
End Class

Back to it.comp.lang.visual-basic | Previous | NextNext in thread | Find similar


Thread

TableAdapterManager tipizzato come proprietà di un UserControl Sacman <d.camorani@gmail.com> - 2015-09-14 12:12 -0700
  Re: TableAdapterManager tipizzato come proprietà di un UserControl "Paperino" <non_te@lo.dico.invalid> - 2015-09-14 21:53 +0200
    Re: TableAdapterManager tipizzato come proprietą di un UserControl Luca D <antaniserse@yahoo.it> - 2015-09-14 13:00 -0700
      Re: TableAdapterManager tipizzato come proprietą di un UserControl Sacman <d.camorani@gmail.com> - 2015-09-14 13:45 -0700
    Re: TableAdapterManager tipizzato come proprietą di un UserControl Sacman <d.camorani@gmail.com> - 2015-09-14 13:43 -0700

csiph-web