Por favor, publica las dudas sobre C# en el subforo de programación .NET.
Estás describiendo el comportamiento por defecto al hacer DOBLE click (que no click) sobre un control en el diseñador de Forms, se autogenera el código del controlador del evento por defecto especificado en la clase del control, esto lo controla Visual Studio según el evento especificado en el atributo de clase DefaultEvent, por ejemplo:
Si realmente te ocurre mucho ese "error", entonces lo que deberías hacer es no hacer doble click a un control o Form sabiendo lo que va a suceder despues, o quizás quieras probar a disminuir la velocidad de doble click en las propiedades del Mouse del Panel de Control en Windows.
...O simplemente cuando ese "error" te suceda, puedes deshacer la autogeneración del código pulsando la combinación de teclas 'CONTROL+Z'.
Estoy completamente de acuerdo en que es muy molesto, el problema viene a raiz de que en C#, a diferencia de VB.NET, no es suficiente con eliminar el bloque de código del controlador de un evento, sino que también se requiere eliminar la sentencia de asociación del evento que se autogenera (como es lógico, ya que C# no posee la palabra reservada Handles, y esto hace que en C# se vuelva algo molesto y nos quite productividad al programar), el cual lo puedes encontrar definido en la clase del código autogenerado del diseñador del Form...
Ejemplo:
Form1.cs
Form1.Designer.cs
Supongo que ha quedado claro lo que debes hacer: cuando elimines el código de un controlador de evento en la clase FormXX.cs, también debes eliminar la asociación de evento de dicho control, en el bloque del método InitializeComponent de la clase FormXX.Designer.cs
Saludos.
Cita de: Avispon99 en 18 Noviembre 2017, 01:58 AMcomo ya sabran cada vez que uno clikea por error alguna herramienta de la ventana de diseño aunque sea un simple "Label" aparece un Metodo "private void" ...
Estás describiendo el comportamiento por defecto al hacer DOBLE click (que no click) sobre un control en el diseñador de Forms, se autogenera el código del controlador del evento por defecto especificado en la clase del control, esto lo controla Visual Studio según el evento especificado en el atributo de clase DefaultEvent, por ejemplo:
Código (csharp,1,3) [Seleccionar]
[DefaultEvent("Click")]
public class Button {
public event EventHandler<EventArgs> Click;
// ...
}
Si realmente te ocurre mucho ese "error", entonces lo que deberías hacer es no hacer doble click a un control o Form sabiendo lo que va a suceder despues, o quizás quieras probar a disminuir la velocidad de doble click en las propiedades del Mouse del Panel de Control en Windows.
...O simplemente cuando ese "error" te suceda, puedes deshacer la autogeneración del código pulsando la combinación de teclas 'CONTROL+Z'.
Cita de: Avispon99 en 18 Noviembre 2017, 01:58 AMlo cual es bastante molesto por que el codigo queda recargado con metodos de tipo (EventArgs) que no voy a usar, y si trato de borrar esos metodos que no voy a usar oviamente el programa entra en conflicto y me toca cerrar sin guardar y volver a abrir el Visual Studio para no perder el trabajo.. Asi que quisiera saber si hay alguna forma de remover esos metodos que no me interesan
Estoy completamente de acuerdo en que es muy molesto, el problema viene a raiz de que en C#, a diferencia de VB.NET, no es suficiente con eliminar el bloque de código del controlador de un evento, sino que también se requiere eliminar la sentencia de asociación del evento que se autogenera (como es lógico, ya que C# no posee la palabra reservada Handles, y esto hace que en C# se vuelva algo molesto y nos quite productividad al programar), el cual lo puedes encontrar definido en la clase del código autogenerado del diseñador del Form...
Ejemplo:
Form1.cs
Código (csharp,3) [Seleccionar]
namespace WindowsFormsApp1 {
public partial class Form1 : Form {
private void button1_Click(object sender, EventArgs e) { }
}
}
Form1.Designer.cs
Código (csharp,11) [Seleccionar]
namespace WindowsFormsApp1 {
partial class Form1 {
//...
private void InitializeComponent() {
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
//...
this.button1.Click += new System.EventHandler(this.button1_Click);
//...
}
//...
}
}
Supongo que ha quedado claro lo que debes hacer: cuando elimines el código de un controlador de evento en la clase FormXX.cs, también debes eliminar la asociación de evento de dicho control, en el bloque del método InitializeComponent de la clase FormXX.Designer.cs
Saludos.