Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 19 Noviembre 2017, 09:24 am



Título: ¿Por qué me salen botones repetidos?
Publicado por: Meta en 19 Noviembre 2017, 09:24 am
Hola:

Tengo esta ventana creada con PowerShell. Lo que no entiendo por mucho que observe el código, es que me aparezcan dos botones iguales en la parte de arriba.

(https://www.subeimagenes.com/img/win32-opciones-4-1800455.PNG)

Código:
# Cargo los Assemblies (necesario para definir el form).
[void][reflection.assembly]::loadwithpartialname("System.Windows.Forms")
[void][reflection.assembly]::loadwithpartialname("System.Drawing")

            $label_Mensaje = New-Object System.Windows.Forms.Label
            $button_Abrir = New-Object System.Windows.Forms.Button
            $button_Cerrar = New-Object System.Windows.Forms.Button
            $groupBox_Bandeja = New-Object System.Windows.Forms.GroupBox

            #
            # label_Mensaje
            #
            $label_Mensaje.Location = New-Object System.Drawing.Point(12, 9)
            $label_Mensaje.Name = "label_Mensaje"
            $label_Mensaje.Size = New-Object System.Drawing.Size(58, 13)
            $label_Mensaje.Text = "Abriendo..."
            #
            # button_Abrir
            #
            $button_Abrir.Location = New-Object System.Drawing.Point(31, 30)
            $button_Abrir.Name = "button_Abrir"
            $button_Abrir.Size = New-Object System.Drawing.Size(75, 23)
            $button_Abrir.Text = "Abrir"         
            #
            # button_Cerrar
            #
            $button_Cerrar.Location = New-Object System.Drawing.Point(139, 30)
            $button_Cerrar.Name = "button_Cerrar"
            $button_Cerrar.Size = New-Object System.Drawing.Size(75, 23)
            $button_Cerrar.Text = "Cerrar"
            #
            # groupBox_Bandeja
            #
            $groupBox_Bandeja.Controls.Add($button_Cerrar)
            $groupBox_Bandeja.Controls.Add($button_Abrir)
            $groupBox_Bandeja.Location = New-Object System.Drawing.Point(15, 118)
            $groupBox_Bandeja.Name = "groupBox_Bandeja"
            $groupBox_Bandeja.Size = New-Object System.Drawing.Size(250, 97)
            $groupBox_Bandeja.Text = "Bandeja"

            #
            # Form1
            #
            #$AutoScaleDimensions = New-Object System.Drawing.SizeF(6F, 13F)
            #$AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            $Form.ClientSize = New-Object System.Drawing.Size(284, 261)
            $Form.Controls.Add($groupBox_Bandeja)
            $Form.Controls.Add($label_Mensaje)
            $Form.Name = "Form1"
            $Form.Text = "Ventana PowerShell"

            # Ejecuto el formulario.
            [void]$Form.ShowDialog()

Saludos.


Título: Re: ¿Por qué me salen botones repetidos?
Publicado por: okik en 19 Noviembre 2017, 14:29 pm
hola buenas


Así a ojo creo que creas los botones uno desde groupBox_Bandeja y otro desde  Form1.


Prueba...
Código:
# Cargo los Assemblies (necesario para definir el form).
[void][reflection.assembly]::loadwithpartialname("System.Windows.Forms")
[void][reflection.assembly]::loadwithpartialname("System.Drawing")

            $label_Mensaje = New-Object System.Windows.Forms.Label
            $button_Abrir = New-Object System.Windows.Forms.Button
            $button_Cerrar = New-Object System.Windows.Forms.Button
            $groupBox_Bandeja = New-Object System.Windows.Forms.GroupBox

            #
            # label_Mensaje
            #
            $label_Mensaje.Location = New-Object System.Drawing.Point(12, 9)
            $label_Mensaje.Name = "label_Mensaje"
            $label_Mensaje.Size = New-Object System.Drawing.Size(58, 13)
            $label_Mensaje.Text = "Abriendo..."
            #
            # button_Abrir
            #
            $button_Abrir.Location = New-Object System.Drawing.Point(31, 30)
            $button_Abrir.Name = "button_Abrir"
            $button_Abrir.Size = New-Object System.Drawing.Size(75, 23)
            $button_Abrir.Text = "Abrir"         
            #
            # button_Cerrar
            #
            $button_Cerrar.Location = New-Object System.Drawing.Point(139, 30)
            $button_Cerrar.Name = "button_Cerrar"
            $button_Cerrar.Size = New-Object System.Drawing.Size(75, 23)
            $button_Cerrar.Text = "Cerrar"
            #
            # groupBox_Bandeja
            #
            $groupBox_Bandeja.Location = New-Object System.Drawing.Point(15, 118)
            $groupBox_Bandeja.Name = "groupBox_Bandeja"
            $groupBox_Bandeja.Size = New-Object System.Drawing.Size(250, 97)
            $groupBox_Bandeja.Text = "Bandeja"

            #
            # Form1
            #
            #$AutoScaleDimensions = New-Object System.Drawing.SizeF(6F, 13F)
            #$AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            $Form.ClientSize = New-Object System.Drawing.Size(284, 261)
            $Form.Controls.Add($groupBox_Bandeja)
    $groupBox_Bandeja.Controls.Add($button_Cerrar)
            $groupBox_Bandeja.Controls.Add($button_Abrir)
            $Form.Controls.Add($label_Mensaje)
            $Form.Name = "Form1"
            $Form.Text = "Ventana PowerShell"

            # Ejecuto el formulario.
            [void]$Form.ShowDialog()



Título: Re: ¿Por qué me salen botones repetidos?
Publicado por: Meta en 19 Noviembre 2017, 20:43 pm
Buenas:

Veo que hay GUI para hacer la vida más fácil, no tiene todos los códigos pero funciona.
https://poshgui.com/#

Más GUI para elegir.
http://tianit.cloudapp.net/blog/index.php/2015/11/04/crear-formularios-con-powershell/

¿Por qué Microsoft no pone como novedad un editor GUI visual para F# y PowerShell?

No se porqué no lo hace si hay demanda, los que lo hacen son terceros y no están completos pero lo intentan y al menos existen para escapar.

Mi truco es, hacer el formulario al 100 % con Visual C# y adaptar los códigos a PowerShell con lo que quiere mucho tiempo.

Saludos.