在 WPF 启动时有 Sub 运行
Have Sub run upon WPF Start
我正在寻找如何创建私有子程序以将数据从 txt 文件加载到某些文本框和 运行 消息框,询问用户加载的数据是否正确。经过大量谷歌搜索后,我还没有想出访问 WPF 的 form_load 或 start_load。在此先感谢大家。
编辑:
这是我想在 WPF 启动时添加到 Form_Load 的子代码。我只是不知道如何添加它。
Private Sub Form_Load()
'Load User data from CVTData.txt
Dim DataPath As String = "C:\Temp\HBS-CVTv2.1\CVTData.txt"
If System.IO.File.Exists(DataPath) Then
Dim values() As String = File.ReadAllText("C:\Temp\HBS-CVTv2.1\CVTData.txt").Split("|"c)
textbox1.Text = values(0)
Textbox2.Text = values(1)
TextBox3.Text = values(2)
Textbox4.Text = values(3)
Select MsgBox("Welcome to the CVT Utility. This will take about 10 minutes to complete" & vbNewLine & "Please confirm that the data entered into the boxes is correct" & vbNewLine & "If so Press Yes" & vbNewLine & "If not Press No to enter data" & vbNewLine & "Press Cancel to close CVT Utility", MsgBoxStyle.YesNoCancel, "Application Start")
'If Yes then Start Short Automated Run
Case MsgBoxResult.Yes
'Create c:\temp\logs folder
Dim LogPath As String = "c:\temp\logs"
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
'Run IPConfig on network
Process.Start("cmd", "/c ipconfig > c:\temp\logs\pcinfo.txt")
'Pause thread to let above process complete
Threading.Thread.Sleep(2000)
'Insert Date into TextBlockDate
TextBlockDate.Text = Date.Today
'Insert Time into TextBlockTime
TextBlockTime.Text = Now.ToLongTimeString
'Call Private Sub IPConfig_Write to update textblock1
Call NetworkIP_Write()
Call Auto_Wrk()
'Toggle Buttons and Check Mark Image to advance to the next step
Button6.IsEnabled = True
Check1.Visibility = Windows.Visibility.Visible
Check2.Visibility = Windows.Visibility.Visible
Check3.Visibility = Windows.Visibility.Visible
Check4.Visibility = Windows.Visibility.Visible
Check5.Visibility = Windows.Visibility.Visible
Button6.Background = System.Windows.Media.Brushes.Gold
button1.IsEnabled = False
Case MsgBoxResult.No
'Create c:\temp\logs folder
Dim LogPath As String = "c:\temp\logs"
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
'Run IPConfig on network
Process.Start("cmd", "/c ipconfig > c:\temp\logs\pcinfo.txt")
'Pause thread to let above process complete
Threading.Thread.Sleep(2000)
'Insert Date into TextBlockDate
TextBlockDate.Text = Date.Today
'Insert Time into TextBlockTime
TextBlockTime.Text = Now.ToLongTimeString
'Call Private Sub IPConfig_Write to update textblock1
Call NetworkIP_Write()
'Toggle Buttons and Check Mark Image to advance to the next step
button1.IsEnabled = True
button1.Background = System.Windows.Media.Brushes.Gold
'If Cancel Close Appliation
Case MsgBoxResult.Cancel
'Close Application
Application.Current.Shutdown()
End Select
Else
button1.IsEnabled = True
button1.Background = System.Windows.Media.Brushes.Gold
MsgBox("Welcome to the CVT Utility. Let's Begin")
End If
End Sub
好的,我刚刚在一个空的 VB WPF 项目中试过了。
如果您想要在加载 WPF window 时 运行 的内容,请处理 window:
的 Loaded 事件
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="Window_Loaded">
<Grid>
<!-- stuff -->
</Grid>
</Window>
然后,在代码隐藏文件中,您可以编写您的事件处理程序:
Class MainWindow
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
'code here
End Sub
End Class
我正在寻找如何创建私有子程序以将数据从 txt 文件加载到某些文本框和 运行 消息框,询问用户加载的数据是否正确。经过大量谷歌搜索后,我还没有想出访问 WPF 的 form_load 或 start_load。在此先感谢大家。
编辑: 这是我想在 WPF 启动时添加到 Form_Load 的子代码。我只是不知道如何添加它。
Private Sub Form_Load()
'Load User data from CVTData.txt
Dim DataPath As String = "C:\Temp\HBS-CVTv2.1\CVTData.txt"
If System.IO.File.Exists(DataPath) Then
Dim values() As String = File.ReadAllText("C:\Temp\HBS-CVTv2.1\CVTData.txt").Split("|"c)
textbox1.Text = values(0)
Textbox2.Text = values(1)
TextBox3.Text = values(2)
Textbox4.Text = values(3)
Select MsgBox("Welcome to the CVT Utility. This will take about 10 minutes to complete" & vbNewLine & "Please confirm that the data entered into the boxes is correct" & vbNewLine & "If so Press Yes" & vbNewLine & "If not Press No to enter data" & vbNewLine & "Press Cancel to close CVT Utility", MsgBoxStyle.YesNoCancel, "Application Start")
'If Yes then Start Short Automated Run
Case MsgBoxResult.Yes
'Create c:\temp\logs folder
Dim LogPath As String = "c:\temp\logs"
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
'Run IPConfig on network
Process.Start("cmd", "/c ipconfig > c:\temp\logs\pcinfo.txt")
'Pause thread to let above process complete
Threading.Thread.Sleep(2000)
'Insert Date into TextBlockDate
TextBlockDate.Text = Date.Today
'Insert Time into TextBlockTime
TextBlockTime.Text = Now.ToLongTimeString
'Call Private Sub IPConfig_Write to update textblock1
Call NetworkIP_Write()
Call Auto_Wrk()
'Toggle Buttons and Check Mark Image to advance to the next step
Button6.IsEnabled = True
Check1.Visibility = Windows.Visibility.Visible
Check2.Visibility = Windows.Visibility.Visible
Check3.Visibility = Windows.Visibility.Visible
Check4.Visibility = Windows.Visibility.Visible
Check5.Visibility = Windows.Visibility.Visible
Button6.Background = System.Windows.Media.Brushes.Gold
button1.IsEnabled = False
Case MsgBoxResult.No
'Create c:\temp\logs folder
Dim LogPath As String = "c:\temp\logs"
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
'Run IPConfig on network
Process.Start("cmd", "/c ipconfig > c:\temp\logs\pcinfo.txt")
'Pause thread to let above process complete
Threading.Thread.Sleep(2000)
'Insert Date into TextBlockDate
TextBlockDate.Text = Date.Today
'Insert Time into TextBlockTime
TextBlockTime.Text = Now.ToLongTimeString
'Call Private Sub IPConfig_Write to update textblock1
Call NetworkIP_Write()
'Toggle Buttons and Check Mark Image to advance to the next step
button1.IsEnabled = True
button1.Background = System.Windows.Media.Brushes.Gold
'If Cancel Close Appliation
Case MsgBoxResult.Cancel
'Close Application
Application.Current.Shutdown()
End Select
Else
button1.IsEnabled = True
button1.Background = System.Windows.Media.Brushes.Gold
MsgBox("Welcome to the CVT Utility. Let's Begin")
End If
End Sub
好的,我刚刚在一个空的 VB WPF 项目中试过了。
如果您想要在加载 WPF window 时 运行 的内容,请处理 window:
的 Loaded 事件<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="Window_Loaded">
<Grid>
<!-- stuff -->
</Grid>
</Window>
然后,在代码隐藏文件中,您可以编写您的事件处理程序:
Class MainWindow
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
'code here
End Sub
End Class