Hello everyone, I have the problem that when I open a file with OpenFileDialog in my script, the file is not transferred to the textbox. In general, I cannot enter any text in the text box. But if I do this outside the function, it works as I imagine. But it has to happen in the function.
I don’t understand what the problem is. Can you please help me?
This is the code, if you open program 1, you get into the program with the selection of a file:
# Laden der Assembly für Windows Forms
Add-Type -AssemblyName System.Windows.Forms
# Erstellen des Hauptfensters
$form = New-Object System.Windows.Forms.Form
$form.Text = "Script Test"
$form.Size = New-Object System.Drawing.Size(600, 400)
$form.StartPosition = "CenterScreen"
# Funktion für den Button-Click-Event
function ButtonClickProgram1($startP1) {
# Hier kannst du die Aktionen für jeden Button definieren
$form.Controls.Clear()
$form.Text = "Programm 1"
# Erstellen Sie ein Textfeld
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Width = 250
$textBox.Left = 10
$textBox.Top = 30
# Setzen Sie die Schriftgröße für den Text in der TextBox
$textBox.Font = New-Object System.Drawing.Font("Arial", 12) # Hier wird die Schriftgröße festgelegt
# Erstellen Sie einen Button
$button = New-Object System.Windows.Forms.Button
$button.Text = "Datei auswählen"
$button.Font = New-Object System.Drawing.Font("Arial", 10)
$button.Left = 280
$button.Top = 28
$button.Width = 160
$button.Height = 30
# Handler für den Button-Click-Event hinzufügen
$button.Add_Click({
$fileDialog = New-Object System.Windows.Forms.OpenFileDialog
$fileDialog.Filter = "CSV-Dateien (*.csv)|*.csv|Textdateien (*.txt)|*.txt"
$result = $fileDialog.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
$textBox.Text = $fileDialog.FileName
}
})
# Fügen Sie die Steuerelemente dem Formular hinzu
$form.Controls.Add($textBox)
$form.Controls.Add($button)
}
# Funktion für den Button-Click-Event
function ButtonClickProgram2($startP2) {
# Hier kannst du die Aktionen für jeden Button definieren
$form.Controls.Clear()
$form.Text = "Programm 2"
}
# Funktion für den Button-Click-Event
function ButtonClickProgram3($startP3) {
# Hier kannst du die Aktionen für jeden Button definieren
$form.Controls.Clear()
$form.Text = "Programm 3"
}
# Funktion für den Button-Click-Event
function ButtonClickProgram4($startP4) {
# Hier kannst du die Aktionen für jeden Button definieren
$form.Controls.Clear()
$form.Text = "Programm 4"
}
# Funktion für den Button-Click-Event
function ButtonClickProgram5($startP5) {
# Hier kannst du die Aktionen für jeden Button definieren
$form.Controls.Clear()
$form.Text = "Programm 5"
}
# Erstellen der Programmbuttons
$programButton1 = New-Object System.Windows.Forms.Button
$programButton1.Text = "Programm 1 starten"
$programButton1.Add_Click({ ButtonClickProgram1 $startP1})
$programButton2 = New-Object System.Windows.Forms.Button
$programButton2.Text = "Programm 2 starten"
$programButton2.Add_Click({ ButtonClickProgram2 $startP2})
$programButton3 = New-Object System.Windows.Forms.Button
$programButton3.Text = "Programm 3 starten"
$programButton3.Add_Click({ ButtonClickProgram3 $startP3})
$programButton4 = New-Object System.Windows.Forms.Button
$programButton4.Text = "Programm 4 starten"
$programButton4.Add_Click({ ButtonClickProgram4 $startP4})
$programButton5 = New-Object System.Windows.Forms.Button
$programButton5.Text = "Programm 5 starten"
$programButton5.Add_Click({ ButtonClickProgram5 $startP5})
# Positionieren der Buttons
$programButton1.Location = New-Object System.Drawing.Point(250, 50)
$programButton2.Location = New-Object System.Drawing.Point(250, 100)
$programButton3.Location = New-Object System.Drawing.Point(250, 150)
$programButton4.Location = New-Object System.Drawing.Point(250, 200)
$programButton5.Location = New-Object System.Drawing.Point(250, 250)
# Hinzufügen der Buttons zum Hauptfenster
$form.Controls.Add($programButton1)
$form.Controls.Add($programButton2)
$form.Controls.Add($programButton3)
$form.Controls.Add($programButton4)
$form.Controls.Add($programButton5)
# Zeigen des Hauptfensters
$form.ShowDialog()
![sc|575x177](upload://ek4ghNz7332P3JjubX3e5SnzShQ.png)