วิธีการตั้งค่าเป็น Combox อย่างนี้ตลอดกับเดียวกับข้อมูลอย่างที่เป็นของผู้ใช้ควบคุมที่จะใช้กับหลายแบบฟอร์ม

0

คำถาม

ฉันมีกล่องคอมโบที่ผมใช้บนหลาย WinForms. แทนที่จะทิ้งกล่องคอมโบนในแต่ละ WinForm แล้วก็มาแทนที่กล่องคอมโบกับข้อมูลจาก DataTable อยู่แต่ละบุคคลหนึ่ง WinForm ไม่สามารถฉันสร้างผู้ใช้ควบคุม(กล่องคอมโบ)นั้นมีข้อมูล populated แล้วแล้วก็ใช้มัน UC ของฉั Winforms?

ด้านล่างเป็นไงบ้างฉันแทนที่ข้อมูลสำหรับแต่ละกล่องคอมโบน (ฉันมีสาธารณะชนชั้นเรียนสำหรับภาษา sql ของ)

ตัวแปรภาษา sql งออกมาจากคลาสที่ชื่อ SQLControl. ชั้นมีทั้งหมดภาษา sql การเชื่อมต่อได้

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

คำตอบที่ดีที่สุด

1

คุณสามารถใส่เล็ก 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

งั้น,ตอนแรกรูปแบบความสนไปเอาข้อมูลในรายการประกาศในมอดูลดังนั้นมันสามารถเข้าถึงได้จากรูปแบบในการทำงานของโปรแกรม แน่นอนคุณอาจจะมีอย่างอื่นที่อยู่ในศูนย์ควบคุม kde ในโมดูล.

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

มีอีกรูปแบบที่ต้องการข้อมูลเพื่อเติมเต็มเป็นกล่องคอมโบสามารถใช้ได้ ExaminerData. เพียงแต่คุณโทรหา FillExaminerList ครั้งนึงตอนจุดเริ่มต้นของการทำงานของโปรแกรม มันเป็นแค่นัดเดียวยิงจากฐานข้อมูลเหมือนกัน

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

นี่คือสุดยอคิดอะไรบางอย่างออก.... เรื่องของความเป็นจริง,ฉันอาจจะใช้ทฤษฎีอื่นข้อมูลของฉันใช้ทั่วทางออกหรอกนะ ขอบคุณ!
Gary

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่