如何在控件值中显示用户控件(窗口窗体)的窗体(Windows 窗体)vb.net

Hui Liu-MSFT 48,586 信誉分 Microsoft 供应商
2024-06-14T07:50:21.4766667+00:00

我正在尝试在 VB.net 上创建一个项目。 我使用了usercontrol表单(Name=uc_Daily_sale)作为表单。其中 datagridview, dattympicar 附加。在运行时,当我双击这个DataGridView2_CellDoubleClick Evint 时, 将打开一个 Form(Name=frm_DailySaleSummary)。datagridview 附加到此窗体,SQL 查询显示在该窗体中。 我在下面提到了查询。 问题是在 frm_DailySaleSummary 的 load 事件中的编码中, 我想引入 usercontrol 窗体的 Controls 的值。但这并没有发生。 提前感谢经验丰富的合作者。



Private Sub DataGridView2_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick
frm_DailySaleSummary.Show()
End Sub

  Private Sub frm_DailySaleSummary_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim cmd As New SqlCommand(" select * from tbl_sales
 where  date between  @dt and @dt1
   and DSR_Name=@Dsr", con)
    Dim da As New SqlDataAdapter(cmd)
    cmd.Parameters.Add("@dt", SqlDbType.Date).Value = uc_Daily_sale.DateTimePicker1.Value
    cmd.Parameters.Add("@dt1", SqlDbType.Date).Value = uc_Daily_sale.DateTimePicker2.Value
    cmd.Parameters.Add("@dsr", SqlDbType.NVarChar).Value = uc_Daily_sale.txt_dsr.Text
    Dim ds As New DataSet
    da.Fill(ds, "item")

    DataGridView1.DataSource = ds.Tables("item")

End Sub

uc_Daily_sale.DateTimePicker1.Value uc_Daily_sale.DateTimePicker2.Value uc_Daily_sale.txt_dsr.Text 显示错误

Note:此问题总结整理于:[How to display in the Controls value Form(Windows Forms) of the usercontrol(Windowd Forms) vb.net](https://learn.microsoft.com/en-us/answers/questions/630342/how-to-display-in-the-controls-value-form(windows)

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
76 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Jiale Xue - MSFT 48,366 信誉分 Microsoft 供应商
    2024-06-14T08:08:38.6+00:00

    您可以通过frm_DailySaleSummary的构造函数将 uc_Daily_sale 中的控件值带到frm_DailySaleSummary 这是我的代码,您可以参考。 uc_Daily_sale

        Private Sub DataGridView2_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick  
            Dim frm As New frm_DailySaleSummary(DateTimePicker1.Value, DateTimePicker2.Value, txt_dsr.Text)  
            frm.Show()  
        End Sub  
    

    frm_DailySaleSummary

        Dim DTPicker1 As Date  
        Dim DTPicker2 As Date  
        Dim txt_dsr As String  
        Public Sub New(DTPicker1 As Date, DTPicker2 As Date, txt_dsr As String)  
      
            InitializeComponent()  
            DTPicker1 = DTPicker1  
            DTPicker2 = DTPicker2  
            txt_dsr = txt_dsr  
      
        End Sub  
    

    我对我的代码进行了一些修改。 以下代码可以解决您的问题。

        Public Sub New(DTPicker1 As Date, DTPicker2 As Date, txt_dsr As String)  
            ' This call is required by the designer.  
            InitializeComponent()  
            Me.DTPicker1 = DTPicker1  
            ME.DTPicker2 = DTPicker2  
            Me.txt_dsr = txt_dsr  
            ' Add any initialization after the InitializeComponent() call.  
        End Sub  
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。