Vb.net 将值返回到新表单调用的文本框

Vb.net 将值返回到新表单调用的文本框,vb.net,textbox,return-value,Vb.net,Textbox,Return Value,在我名为“authors”的表单中,我有两个文本字段,它们都用于获取两个不同的日期作为输入。如果用户聚焦文本框,它将显示我以其他形式放置的日历。选择日期并单击“选择”按钮后,所选日期将分配给文本框 这是我写的代码: 作者-编码: Private Sub DOFE_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOFE.GotFocus If DOFE.Text = "" T

在我名为“authors”的表单中,我有两个文本字段,它们都用于获取两个不同的日期作为输入。如果用户聚焦文本框,它将显示我以其他形式放置的日历。选择日期并单击“选择”按钮后,所选日期将分配给文本框

这是我写的代码:

作者-编码:

Private Sub DOFE_TextChanged(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles DOFE.GotFocus
If DOFE.Text = "" Then
        Calendar.ShowDialog()
    Else
        Me.DOFE.Select()
        Me.DOFE.Focus()
    End If
End Sub
Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
    Me.Close()
End Sub

Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
End Sub
日历-编码:

Private Sub DOFE_TextChanged(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles DOFE.GotFocus
If DOFE.Text = "" Then
        Calendar.ShowDialog()
    Else
        Me.DOFE.Select()
        Me.DOFE.Focus()
    End If
End Sub
Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
    Me.Close()
End Sub

Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
End Sub
现在的问题是,当我尝试执行以下代码时:

Private Sub DOB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOB.GotFocus
    If DOB.Text = "" Then
        Calendar.ShowDialog()
    Else
        Me.DOB.Select()
        Me.DOB.Focus()
    End If
End Sub
我的意思是,该代码用于将其他日期指定给相同格式的其他文本字段

可以通过添加单行来实现

**Authors.DOB.Text** = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
以日历形式,但反射将发生在两个文本字段上


在这方面建议我。

一种方法是使用
Public
变量保存日期,然后在
ShowDialog
方法之后分配它

因此,在某些模块中,您将

Public tempDate As Date
在您的日历代码中

Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click
    tempDate = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
    Me.Close()
End Sub
然后在您的
文本中\u更改了
事件

Private Sub DOB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOB.GotFocus
    If DOB.Text = "" Then
        tempDate = ""
        Calendar.ShowDialog()
        DOB.Text = tempDate
    Else
        Me.DOB.Select()
        Me.DOB.Focus()
    End If
End Sub

一种方法是使用
Public
变量保存日期,然后在
ShowDialog
方法之后分配日期

因此,在某些模块中,您将

Public tempDate As Date
在您的日历代码中

Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click
    tempDate = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy")
    Me.Close()
End Sub
然后在您的
文本中\u更改了
事件

Private Sub DOB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOB.GotFocus
    If DOB.Text = "" Then
        tempDate = ""
        Calendar.ShowDialog()
        DOB.Text = tempDate
    Else
        Me.DOB.Select()
        Me.DOB.Focus()
    End If
End Sub

我不太明白你的问题。你可以看看DateTime的格式,它可以让你以任何方式格式化日期。我不太确定我是否理解你的问题。你可以看看DateTime的格式,它可以让你以任何你想要的方式格式化日期。是的,它很有效。非常感谢。但是代码中的问题是,在我们为文本框指定一些文本之前,文本中的焦点不能丢失。因为我们有焦点事件。所以,我做了一些更改,比如如果DOFE.Text=“”和TempDate=“”,那么Calendar.ShowDialog()DOFE.Text=TempDate TempDate=“”,否则我会选择()我。DOFE.Focus()结束,我很高兴它能按您的要求工作。请选择我的答案。谢谢。是的,它很有效。非常感谢。但是代码中的问题是,在我们为文本框指定一些文本之前,文本中的焦点不能丢失。因为我们有焦点事件。所以,我做了一些更改,比如如果DOFE.Text=“”和TempDate=“”,那么Calendar.ShowDialog()DOFE.Text=TempDate TempDate=“”,否则我会选择()我。DOFE.Focus()结束,我很高兴它能按您的要求工作。请选择我的答案。非常感谢。