elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con los user control
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con los user control  (Leído 5,424 veces)
kaiserdj

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Problema con los user control
« en: 7 Febrero 2018, 22:22 pm »

Buenos días,
Soy nuevo en c# y visual studio,
lo que quiero hacer es que en el form1 muestre un user control, y cuando le de a un boton dentro ese user control, haga .BringToFront(); de otro user control dentro del form1, no se si me entiendes.

Por ejemplo:
tengo en el form1 el user control "servers",
al dar a un boton que esta dentro de "servers"
ejecute "noticias1.BringToFront();"
para que el user control "noticias1"
se ponga encima de todo en el form1

Lo siento si es lioso, muchas gracias y un saludo


« Última modificación: 7 Febrero 2018, 22:29 pm por kaiserdj » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema con los user control
« Respuesta #1 en: 7 Febrero 2018, 23:10 pm »

lo que quiero hacer es que en el form1 muestre un user control, y cuando le de a un boton dentro ese user control, haga .BringToFront(); de otro user control dentro del form1, no se si me entiendes.

1. ¿Qué has intentado hacer para solucionarlo?, muestra el código... en el foro no se pide ni se hacen tareas.

2. ¿Qué es exactamente en lo que tienes dificultades con ese problema?.

De todas formas te explico, basicamente lo único que tienes que hacer es controlar el evento Button.Click del botón hijo de tu user control, y ahí invocas un evento base, es decir, un evento existente en la clase de tu user control.

Por si no lo has entendido bien, lo explicaré de otra forma: en la clase de tu user control, lo primero de todo debes declarar y exponer un evento llamado 'Click' (o como lo quieras llamar, eso no importa), luego hace falta que añadas un método llamado 'OnClick' que servirá para invocar el evento 'Click'. Ya tienes creado el evento y el invocador del evento, bien, ahora, debes añadir otro método para controlar el evento 'Button.Click' del botón hijo, y en el bloque de código de ese controlador del evento 'Button.Click' debes invocar el evento 'Click' base, es decir, el evento que declaraste en tu user control, llamando al invocador del evento (el método 'OnClick').

Si estás heredando la clase UserControl o cualquier otra clase que herede de la clase Control (como sería lógico suponer que estás haciendo), entonces puedes saltarte unos cuantos pasos, puesto que dicha clase ya expone un evento llamado Click que lo heredas y del cual podemos servirnos de la siguiente manera:

Código
  1. [DefaultEvent("Click")]
  2. public class MyUserControl : UserControl {
  3.  
  4.    protected Button ChildButton;
  5.  
  6.    public MyUserControl() {
  7.        this.ChildButton = new Button();
  8.        this.ChildButton.Click += this.ChildButton_Click;
  9.        this.Controls.Add(this.ChildButton);
  10.    }
  11.  
  12.    private void ChildButton_Click(object sender, EventArgs e) {
  13.        base.OnClick(e);
  14.    }
  15.  
  16. }

Te muestro la forma que expliqué de hacerlo al principio, es decir, creando un nuevo evento:

Código
  1. [DefaultEvent("ClickButton")]
  2. public class MyUserControl : UserControl {
  3.  
  4.    protected Button ChildButton;
  5.    public event EventHandler<EventArgs> ClickButton;
  6.  
  7.    public MyUserControl() {
  8.        this.ChildButton = new Button();
  9.        this.ChildButton.Click += this.ChildButton_Click;
  10.        this.Controls.Add(this.ChildButton);
  11.    }
  12.  
  13.    protected virtual void OnClickButton(EventArgs e) {
  14.        if (this.ClickButton != null) {
  15.            this.ClickButton(this, e);
  16.        }
  17.    }
  18.  
  19.    private void ChildButton_Click(object sender, EventArgs e) {
  20.        this.OnClickButton(e);
  21.    }
  22.  
  23. }

Ese último ejemplo serviría para diferenciar un tipo de click de otro, es decir, diferenciar un click en la superficie del user control (controlando el evento MyUserControl.Click), de un click en el botón (controlando el evento MyUserControl.ClickButton).

Saludos


« Última modificación: 8 Febrero 2018, 00:43 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Zyxel P-870HW-51A V2 : Problema de seguridad. Acceso oculto con user/user
Noticias
wolfbcn 0 4,203 Último mensaje 23 Octubre 2011, 16:04 pm
por wolfbcn
[TUTORIAL] Craquear user-control: Quantum Whale Editor.Net
Ingeniería Inversa
Eleкtro 0 3,627 Último mensaje 8 Marzo 2015, 03:32 am
por Eleкtro
ayuda para destruir user control
.NET (C#, VB.NET, ASP)
d91 1 2,103 Último mensaje 22 Febrero 2016, 18:20 pm
por Eleкtro
[SOURCE-CODE] DWM Thumbnail User Control
.NET (C#, VB.NET, ASP)
Eleкtro 2 5,602 Último mensaje 12 Agosto 2018, 23:54 pm
por Eleкtro
[Aporte] LabelPlus (user control) « 1 2 »
Programación Visual Basic
LeandroA 12 10,804 Último mensaje 16 Diciembre 2020, 02:58 am
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines