Vb.net 将值返回到新表单调用的文本框
在我名为“authors”的表单中,我有两个文本字段,它们都用于获取两个不同的日期作为输入。如果用户聚焦文本框,它将显示我以其他形式放置的日历。选择日期并单击“选择”按钮后,所选日期将分配给文本框 这是我写的代码: 作者-编码: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
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()结束,我很高兴它能按您的要求工作。请选择我的答案。非常感谢。