验证目标功能中的控制



我有一个文本框,应该包含一个文件名。 该程序必须工作,所以我把:

Private Sub tbScanFilter_Validating(sender As Object, e As CancelEventArgs) Handles tbScanFilter.Validating
If tbScanFilter.Text.Length = 0 Then
e.Cancel = True
ErrorProvider1.SetError(tbScanFilter, "Filter is required.")
End If
End Sub

在文本框附近,我放置了一个按钮 (...),该按钮将打开打开文件对话框窗口以选择文件。

问题是,如果文本框为空,则将设置 ErrorProvider1,并且不允许焦点移动到按钮。

所以我想做的是这样的

If destination <> button (...) then
If tbScanFilter.Text.Length = 0 Then
e.Cancel = True
ErrorProvider1.SetError(tbScanFilter, "Filter is required.")
End If

但是我怎么知道哪个是目标控件呢? 我尝试检查按钮的 Enter 事件,但在验证之前没有触发。

知道吗?有什么帮助吗?

与其使用按钮来启动对话框,不如使用文本框本身呢?大致如下:

Private Sub tbScanFilter_Click(ByVal sender As Object, ByVal e As EventArgs) Handles tbScanFilter.Click
Using ofd As New OpenFileDialog
With ofd
'Set any properties here
'.Filter = "*.txt|*.txt"
'.MultiSelect = False
'Etc...
If .ShowDialog() = DialogResult.OK Then
tbScanFilter.Text = .FileName
End If
End With
End Using
End Sub

编辑 - 您甚至可以将事件从单击更改为双击,并在文本框下方提供一个小标签,以通知用户单击或双击文本框以启动对话框。

相关内容

  • 没有找到相关文章

最新更新