jeudi 28 novembre 2019

How to create check box automatically depends on folder selected using PowerShell?

I need to create a checkbox automatically depends on folder I selected. I create ComboBox, then in the ComboBox, I can select which folder that I want to select. Inside of my folder, I have some file. The file consist of some extension file. I just need to pick 2 extension file from the folder, example(*.txt and *.csv).

After I select the folder, the checkBox will create automatically, the total of the checkBox depends on how many file exist in that folder with specific extension(*.txt and *.csv).

In my code, I already do some stuff, which is select the folder that I need to select, but still struggle with the checkBox. Anyone can help me please. Thank you so much. I really appreciate for the help.

Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

# $Global:status = "inactive" 
# $Global:array = New-Object System.Collections.Generic.List[System.Object]

$Form                            = New-Object system.Windows.Forms.Form
$Form.BackColor                  = "#f6f6f6"
$Form.AutoSize                   = $true
$Form.FormBorderStyle            = "FixedDialog"
$Form.MaximizeBox                = $false
$Form.startposition              = "centerscreen"
$Form.WindowState                = 'Maximized'

$Label1                          = New-Object system.Windows.Forms.Label
$Label1.text                     = "FOLDER"
$Label1.AutoSize                 = $true
$Label1.width                    = 25
$Label1.height                   = 10
$Label1.location                 = New-Object System.Drawing.Point(35,80)
$Label1.Font                     = 'Microsoft Sans Serif,12,style=Bold'
$Label1.ForeColor                = "#000000"

$Button3                         = New-Object system.Windows.Forms.Button
$Button3.BackColor               = "#136aa4"
$Button3.ForeColor               = "#ffffff"
$Button3.text                    = "Done"
$Button3.width                   = 90
$Button3.height                  = 32
$Button3.UseCompatibleTextRendering = $True
$Button3.location                = New-Object System.Drawing.Point(1700,920)
$Button3.Font                    = 'Microsoft Sans Serif,10'
$Button3.Visible                 = $false

$Button2                         = New-Object system.Windows.Forms.Button
$Button2.BackColor               = "#136aa4"
$Button2.ForeColor               = "#ffffff"
$Button2.text                    = "Delete"
$Button2.width                   = 90
$Button2.height                  = 32
$Button2.UseCompatibleTextRendering = $True
$Button2.location                = New-Object System.Drawing.Point(1600,920)
$Button2.Font                    = 'Microsoft Sans Serif,10'
$Button2.Visible                 = $false

$Panel = New-Object System.Windows.Forms.TableLayoutPanel
$panel.Dock = "Fill"
$panel.ColumnCount = 1
$panel.RowCount = 1
$panel.CellBorderStyle = "single"
$panel.ColumnStyles.Add((new-object System.Windows.Forms.ColumnStyle([System.Windows.Forms.SizeType]::Percent, 100)))
$panel.RowStyles.Add((new-object System.Windows.Forms.RowStyle([System.Windows.Forms.SizeType]::Percent, 100)))


$Groupbox1                       = New-Object system.Windows.Forms.Groupbox
$Groupbox1.text                  = "Handling"
$Groupbox1.Font                  = 'Microsoft Sans Serif,9'
$Groupbox1.AutoSize              = $true
$Groupbox1.ForeColor             = "#032d5d"
$Groupbox1.location              = New-Object System.Drawing.Point(8,13)
$Groupbox1.Padding               = New-Object -TypeName System.Windows.Forms.Padding -ArgumentList (0,5,5,0)
$Groupbox1.Dock                  = "fill"

$Groupbox2                       = New-Object system.Windows.Forms.Groupbox
$Groupbox2.text                  = "Information"
$Groupbox2.Font                  = 'Microsoft Sans Serif,9'
$Groupbox2.AutoSize              = $true
$Groupbox2.ForeColor             = "#032d5d"
$Groupbox2.Dock                  = "None"

$Groupbox1.Height
$Groupbox1.Width
$g2w = $Groupbox1.Width * 9.2
$g2h = $Groupbox1.Height * 7

$Groupbox2.location              = New-Object System.Drawing.Point(35,203)
$Groupbox2.size                  = New-Object System.Drawing.Size($g2w,$g2h)


$ComboBox1                        = New-Object system.Windows.Forms.ComboBox
$ComboBox1.BackColor              = "#e8f3ff"
$ComboBox1.width                  = 180
$ComboBox1.height                 = 20
$ComboBox1.location               = New-Object System.Drawing.Point(100,75)
$ComboBox1.Font                   = 'Microsoft Sans Serif,12'
$ComboBox1.AutoSize               = $true
$ImageList = @(Get-ChildItem -Directory "D:\Process")
foreach ($img in $ImageList) {
    $ComboBox1.Items.Add($img)
}


$Form.controls.AddRange(@($Panel))
$Panel.controls.AddRange(@($Groupbox1))
$Groupbox1.Controls.AddRange(@($Groupbox2, $ComboBox1, $Label1, $Button3, $Button2))

[void]$Form.ShowDialog()



Aucun commentaire:

Enregistrer un commentaire