Cum să Setup Un Combox , mereu cu aceleași date, ca un utilizator de control pentru a fi folosit pe mai multe forme

0

Problema

Am un ComboBox care il folosesc pe mai multe WinForms. În loc să lase un ComboBox de pe fiecare WinForm și apoi umplerea ComboBox cu date dintr-un DataTable pe fiecare individ WinForm, nu am putut crea un Utilizator de Control (ComboBox) care are date deja populate și de a folosi doar ca UC pe Winforms?

Mai jos este cum mă umple de date pentru fiecare individ combobox acum. (Am un public class pentru chestii sql)

Variabila SQL provine dintr-o Clasa numita SQLControl. Clasa are toate conexiune sql lucruri.

Public Sub Fillcombobox()

    sql.AddParam("@ExaminerType", 3)
    sql.ExecQuery("MyStoredProcedure")
    ComboBoxExaminer.ValueMember = "Examiner_ID"
    ComboBoxExaminer.DisplayMember = "Last_Name"
    ComboBoxExaminer.DataSource = sql.DBDT
End Sub

Private Sub MyWinform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Call Fillcombobox()
End Sub
user-controls vb.net winforms
2021-11-23 20:34:47
1

Cel mai bun răspuns

1

Puteți pune un mic Class Examiner

Public Class Examiner
    Public Property Examiner_ID As Integer
    Public Property Last_Name As String
    Public Sub New(ID As Integer, lname As String)
        Examiner_ID = ID
        Last_Name = lname
    End Sub
End Class

Apoi, când prima formă sarcini, pentru a primi date într-o listă a declarat într-un modul astfel încât acesta poate fi accesat de la orice formă în cerere. Desigur, tu poate ai alte lucruri în Module.

Module Module1
    Public ExaminerData As New List(Of Examiner)
End Module

Private Sub MyWinform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    FillExaminerList()
    ComboBoxExaminer.ValueMember = "Examiner_ID"
    ComboBoxExaminer.DisplayMember = "Last_Name"
    ComboBoxExaminer.DataSource = ExaminerData
End Sub

Orice altă formă care are nevoie de date pentru a umple un combo box se poate folosi ExaminerData. Te sun doar FillExaminerList după ce la începutul cererii. Există doar un singur hit pe baza de date.

Private OPConStr As String = "Your connection string."

Private Sub FillExaminerList()
    Dim dt As New DataTable
    Using cn As New SqlConnection(OPConStr),
            cmd As New SqlCommand("MyStoredProcedure", cn)
        cmd.Parameters.Add("@ExaminerType", SqlDbType.Int).Value = 3
        Using reader = cmd.ExecuteReader
            dt.Load(reader)
        End Using
    End Using
    For Each row As DataRow In dt.Rows
        Dim ex As New Examiner(CInt(row("Examiner_ID")), row("Last_Name").ToString)
        ExaminerData.Add(ex)
    Next
End Sub
2021-11-24 00:51:00

Aceasta este o soluție Minunat..... De fapt, am putea folosi teoria pe alte date am utilizat de-a lungul soluție. Multumesc!!!
Gary

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................