Powershell gui 在文本框中输入变量
Powershell gui enter variable to text box
我正在开发一个应用程序,在其中一个功能中,我想实现通过浏览“我的电脑”选择源文件夹和目标文件夹,或者只是复制粘贴文本框中的路径,从而生成一个变量供以后使用
如果在浏览文件夹时选择了路径,我希望所选路径显示在文本框中。
在 运行 运行 GUI 时出现错误:“您不能在空值表达式上调用方法” 在我不想调用的行中在文本框中显示选定的文件夹。我测试了打开我的电脑浏览的脚本部分,如果 运行 单独生成一个变量,但我有一种感觉,当 运行 在完整代码中我没有得到一个变量.我的想法是否正确,我该如何解决?
##########################################################################
# Variables
##########################################################################
# Language variables
$main_form_title_text = "File renaming app"
$info_text_source_folder = "Select source folder or paste it below"
$Source_folder_button_text = "Sel. source folder"
$info_text_destination_folder = "Select dest. folder or paste it below"
$Destination_folder_button_text = "Sel. dest. folder"
##########################################################################
# Load forms
##########################################################################
add-type -AssemblyName system.windows.forms
add-type -assemblyname system.drawing
##########################################################################
# Main Window Form
##########################################################################
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text = $main_form_title_text
$main_form.TopMost = $true
$main_form.icon=$icon
$main_form.BackColor = [System.Drawing.Color]::FromArgb(255,255,255,255)
$main_form.Size = New-Object System.Drawing.Size(450,525)
##########################################################################
# Source folder selection instructions
##########################################################################
$infosource = New-Object System.Windows.Forms.label
$infosource.Location = New-Object System.Drawing.Size(10,45)
$infosource.Size = New-Object System.Drawing.Size(200,15)
$infosource.BackColor = "Transparent"
$infosource.ForeColor = "black"
$infosource.Text = $info_text_source_folder
$main_form.Controls.Add($infosource)
##########################################################################
# Select source folder button
##########################################################################
$Select_source_folder = New-Object System.Windows.Forms.Button
$Select_source_folder.Location = New-Object System.Drawing.Size(230,40)
$Select_source_folder.Size = New-Object System.Drawing.Size(120,25)
$Select_source_folder.Text = $Source_folder_button_text
$main_form.Controls.Add($Select_source_folder)
$Select_source_folder.Add_Click({
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$source = $FolderBrowser.SelectedPath
$sourceinfo.items.insert(0, $source)
})
############################################################################
# Source folder textbox/info
############################################################################
$sourceinfo = New-Object Windows.Forms.Textbox
$sourceinfo = New-Object System.Windows.Forms.Textbox
$sourceinfo.Location = New-Object System.Drawing.Size(10,70)
$sourceinfo.Size = New-Object System.Drawing.Size(340,25)
$main_form.Controls.Add($sourceinfo)
##########################################################################
# Source folder selection instructions
##########################################################################
$infosource = New-Object System.Windows.Forms.label
$infosource.Location = New-Object System.Drawing.Size(10,115)
$infosource.Size = New-Object System.Drawing.Size(200,15)
$infosource.BackColor = "Transparent"
$infosource.ForeColor = "black"
$infosource.Text = $info_text_destination_folder
$main_form.Controls.Add($infosource)
##########################################################################
# Select destination folder button
##########################################################################
$Select_destination_folder = New-Object System.Windows.Forms.Button
$Select_destination_folder.Location = New-Object System.Drawing.Size(230,110)
$Select_destination_folder.Size = New-Object System.Drawing.Size(120,25)
$Select_destination_folder.Text = $Destination_folder_button_text
$main_form.Controls.Add($Select_destination_folder)
$Select_destination_folder.Add_Click({
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$destination = $FolderBrowser.SelectedPath
$destinationinfo.items.insert(0, $destination)
})
############################################################################
# Destination folder textbox/info
############################################################################
$destinationinfo = New-Object Windows.Forms.Textbox
$destinationinfo = New-Object System.Windows.Forms.Textbox
$destinationinfo.Location = New-Object System.Drawing.Size(10,140)
$destinationinfo.Size = New-Object System.Drawing.Size(340,25)
$main_form.Controls.Add($destinationinfo)
##########################################################################
# Start form
##########################################################################
[void]$main_form.ShowDialog()
换行
$sourceinfo.items.insert(0, $source)
至
$sourceinfo.Text = $source
我正在开发一个应用程序,在其中一个功能中,我想实现通过浏览“我的电脑”选择源文件夹和目标文件夹,或者只是复制粘贴文本框中的路径,从而生成一个变量供以后使用
如果在浏览文件夹时选择了路径,我希望所选路径显示在文本框中。
在 运行 运行 GUI 时出现错误:“您不能在空值表达式上调用方法” 在我不想调用的行中在文本框中显示选定的文件夹。我测试了打开我的电脑浏览的脚本部分,如果 运行 单独生成一个变量,但我有一种感觉,当 运行 在完整代码中我没有得到一个变量.我的想法是否正确,我该如何解决?
##########################################################################
# Variables
##########################################################################
# Language variables
$main_form_title_text = "File renaming app"
$info_text_source_folder = "Select source folder or paste it below"
$Source_folder_button_text = "Sel. source folder"
$info_text_destination_folder = "Select dest. folder or paste it below"
$Destination_folder_button_text = "Sel. dest. folder"
##########################################################################
# Load forms
##########################################################################
add-type -AssemblyName system.windows.forms
add-type -assemblyname system.drawing
##########################################################################
# Main Window Form
##########################################################################
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text = $main_form_title_text
$main_form.TopMost = $true
$main_form.icon=$icon
$main_form.BackColor = [System.Drawing.Color]::FromArgb(255,255,255,255)
$main_form.Size = New-Object System.Drawing.Size(450,525)
##########################################################################
# Source folder selection instructions
##########################################################################
$infosource = New-Object System.Windows.Forms.label
$infosource.Location = New-Object System.Drawing.Size(10,45)
$infosource.Size = New-Object System.Drawing.Size(200,15)
$infosource.BackColor = "Transparent"
$infosource.ForeColor = "black"
$infosource.Text = $info_text_source_folder
$main_form.Controls.Add($infosource)
##########################################################################
# Select source folder button
##########################################################################
$Select_source_folder = New-Object System.Windows.Forms.Button
$Select_source_folder.Location = New-Object System.Drawing.Size(230,40)
$Select_source_folder.Size = New-Object System.Drawing.Size(120,25)
$Select_source_folder.Text = $Source_folder_button_text
$main_form.Controls.Add($Select_source_folder)
$Select_source_folder.Add_Click({
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$source = $FolderBrowser.SelectedPath
$sourceinfo.items.insert(0, $source)
})
############################################################################
# Source folder textbox/info
############################################################################
$sourceinfo = New-Object Windows.Forms.Textbox
$sourceinfo = New-Object System.Windows.Forms.Textbox
$sourceinfo.Location = New-Object System.Drawing.Size(10,70)
$sourceinfo.Size = New-Object System.Drawing.Size(340,25)
$main_form.Controls.Add($sourceinfo)
##########################################################################
# Source folder selection instructions
##########################################################################
$infosource = New-Object System.Windows.Forms.label
$infosource.Location = New-Object System.Drawing.Size(10,115)
$infosource.Size = New-Object System.Drawing.Size(200,15)
$infosource.BackColor = "Transparent"
$infosource.ForeColor = "black"
$infosource.Text = $info_text_destination_folder
$main_form.Controls.Add($infosource)
##########################################################################
# Select destination folder button
##########################################################################
$Select_destination_folder = New-Object System.Windows.Forms.Button
$Select_destination_folder.Location = New-Object System.Drawing.Size(230,110)
$Select_destination_folder.Size = New-Object System.Drawing.Size(120,25)
$Select_destination_folder.Text = $Destination_folder_button_text
$main_form.Controls.Add($Select_destination_folder)
$Select_destination_folder.Add_Click({
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$destination = $FolderBrowser.SelectedPath
$destinationinfo.items.insert(0, $destination)
})
############################################################################
# Destination folder textbox/info
############################################################################
$destinationinfo = New-Object Windows.Forms.Textbox
$destinationinfo = New-Object System.Windows.Forms.Textbox
$destinationinfo.Location = New-Object System.Drawing.Size(10,140)
$destinationinfo.Size = New-Object System.Drawing.Size(340,25)
$main_form.Controls.Add($destinationinfo)
##########################################################################
# Start form
##########################################################################
[void]$main_form.ShowDialog()
换行
$sourceinfo.items.insert(0, $source)
至
$sourceinfo.Text = $source