#powershell #user-interface
#powershell #пользовательский интерфейс
Вопрос:
итак, в принципе, мне нужно создать игру в угадывание чисел, но с графическим интерфейсом. я не знаю, как сделать так, чтобы ответ, написанный пользователем в текстовом поле, стал переменной и как использовать интеграцию этой переменной с остальными моими сценариями.
вот что у меня есть до сих пор:
Графический интерфейс:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
#GUI
$gamefrm = New-Object system.Windows.Forms.Form
$gamefrm.ClientSize = New-Object System.Drawing.Point(573,376)
$gamefrm.text = "Deviner le nombre"
$gamefrm.TopMost = $true
$gamefrm.BackColor = [System.Drawing.ColorTranslator]::FromHtml("#bd10e0")
$ruletxt = New-Object system.Windows.Forms.TextBox
$ruletxt.multiline = $false
$ruletxt.width = 262
$ruletxt.height = 20
$ruletxt.location = New-Object System.Drawing.Point(150,39)
$ruletxt.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$ruletxt.Text = "Deviner le nombre!"
$ruletxt.AutoSize = $true
$ruletxt.ReadOnly = $true
$intxt = New-Object system.Windows.Forms.TextBox
$intxt.multiline = $false
$intxt.width = 263
$intxt.height = 20
$intxt.location = New-Object System.Drawing.Point(149,110)
$intxt.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$intxt.Text = "1"
$intxt.AutoSize = $true
$intxt.ReadOnly = $true
$outtxt = New-Object system.Windows.Forms.TextBox
$outtxt.multiline = $false
$outtxt.width = 263
$outtxt.height = 20
$outtxt.location = New-Object System.Drawing.Point(149,190)
$outtxt.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$outtxt.text = ""
$outtxt.AutoSize = $true
$gamefrm.controls.AddRange(@($ruletxt,$intxt,$outtxt,$imagepb,$Button1,))
$Button1 = New-Object system.Windows.Forms.Button
$Button1.text = "button"
$Button1.width = 60
$Button1.height = 30
$Button1.location = New-Object System.Drawing.Point(86,89)
$Button1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
Логический код :
#Write your logic code here
[void]$gamefrm.ShowDialog()
[int]$nombre = Get-Random -Minimum 1 -Maximum 101
$essai = 0
$output = $intxt.Text
$input = $outtxt.Text
while ($input -ne $nombre){
if ($input -gt $nombre) {$output = " trop haut "}
if ($input -lt $nombre) {$intxt.Text = " trop bas "}
if ( ( $input -gt 100 ) -or ($input -lt 0 ) ) {$intxt.Text = " entre 1 et 100! "}
$essai
} $intxt.Text = "Correct! Nombre d'essai: $essai"
если кто-нибудь может помочь, пожалуйста, дайте мне знать, спасибо.
Комментарии:
1. Вам нужно создать функцию, а затем добавить начало функции к событию в форме.
2. Я бы рекомендовал вам сначала выяснить, как выполнить игру в угадайку в консоли powershell, тогда было бы проще связать это с графическим интерфейсом.
3. @ArcSet какую функцию я должен использовать?
4. @DougMaurer я сделал, и это хорошо работало в консоли
5. Возьмите то, что вы сделали в консоли, превратите это в функцию, прикрепите к ней свой графический интерфейс. Функция — это функция, будь то базовая или расширенная. Вы можете использовать любой из них в любое время по любой причине. Посмотрите на примеры в ISE, используя CRTL J, если вы используете VSCode, CRTL Alt J. Если вы делаете это в чем-то другом, обратитесь к файлам справки для функций PowerShell.