Я счас изучаю события и вот столкнулся пока с непонятной ситуацией
Как при нажатии одной кнопки в форме вызвать событие нажатия другой. К другой кнопке привязаны 2-а события.
В приведенном ниже коде при нажатии кнопки Slave вызываются две подписанные на это собитие процедуры отображения двух Labels. А хочу чтобы при нажатии кнопки Master вызывалосm событие нажатия кнопки Slave.
Подскажите что и куда вписать

, за ранее благодарен.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace PressButton
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button Master;
private System.Windows.Forms.Button Slave;
private System.Windows.Forms.Label labelEvent1;
private System.Windows.Forms.Label labelEvent2;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.Master = new System.Windows.Forms.Button();
this.Slave = new System.Windows.Forms.Button();
this.labelEvent1 = new System.Windows.Forms.Label();
this.labelEvent2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// Master
//
this.Master.Location = new System.Drawing.Point(16, 24);
this.Master.Name = "Master";
this.Master.Size = new System.Drawing.Size(72, 32);
this.Master.TabIndex = 0;
this.Master.Text = "Master";
//
// Slave
//
this.Slave.Location = new System.Drawing.Point(160, 24);
this.Slave.Name = "Slave";
this.Slave.Size = new System.Drawing.Size(80, 32);
this.Slave.TabIndex = 1;
this.Slave.Text = "Slave";
this.Slave.Click += new System.EventHandler(this.SetVisible2);
//
// labelEvent1
//
this.labelEvent1.AutoSize = true;
this.labelEvent1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelEvent1.Location = new System.Drawing.Point(180, 96);
this.labelEvent1.Name = "labelEvent1";
this.labelEvent1.Size = new System.Drawing.Size(60, 16);
this.labelEvent1.TabIndex = 2;
this.labelEvent1.Text = "Событие 1";
this.labelEvent1.Visible = false;
//
// labelEvent2
//
this.labelEvent2.AutoSize = true;
this.labelEvent2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelEvent2.Location = new System.Drawing.Point(178, 128);
this.labelEvent2.Name = "labelEvent2";
this.labelEvent2.Size = new System.Drawing.Size(62, 16);
this.labelEvent2.TabIndex = 3;
this.labelEvent2.Text = "Событие 2";
this.labelEvent2.Visible = false;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.labelEvent2);
this.Controls.Add(this.labelEvent1);
this.Controls.Add(this.Slave);
this.Controls.Add(this.Master);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void SetVisible1(object sender, System.EventArgs e)
{
labelEvent1.Visible=!labelEvent1.Visible;
}
private void SetVisible2(object sender, System.EventArgs e)
{
labelEvent2.Visible=!labelEvent2.Visible;
}
}
}
17.09.04 14:00: Перенесено модератором из '.NET' — TK
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace PressButton
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button Master;
private System.Windows.Forms.Button Slave;
private System.Windows.Forms.Label labelEvent1;
private System.Windows.Forms.Label labelEvent2;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.Master = new System.Windows.Forms.Button();
this.Slave = new System.Windows.Forms.Button();
this.labelEvent1 = new System.Windows.Forms.Label();
this.labelEvent2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// Master
//
this.Master.Location = new System.Drawing.Point(16, 24);
this.Master.Name = "Master";
this.Master.Size = new System.Drawing.Size(72, 32);
this.Master.TabIndex = 0;
this.Master.Text = "Master";
//
// Slave
//
this.Slave.Location = new System.Drawing.Point(160, 24);
this.Slave.Name = "Slave";
this.Slave.Size = new System.Drawing.Size(80, 32);
this.Slave.TabIndex = 1;
this.Slave.Text = "Slave";
this.Slave.Click += new System.EventHandler(this.SetVisible2);
//
// labelEvent1
//
this.labelEvent1.AutoSize = true;
this.labelEvent1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelEvent1.Location = new System.Drawing.Point(180, 96);
this.labelEvent1.Name = "labelEvent1";
this.labelEvent1.Size = new System.Drawing.Size(60, 16);
this.labelEvent1.TabIndex = 2;
this.labelEvent1.Text = "Событие 1";
this.labelEvent1.Visible = false;
//
// labelEvent2
//
this.labelEvent2.AutoSize = true;
this.labelEvent2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));
this.labelEvent2.Location = new System.Drawing.Point(178, 128);
this.labelEvent2.Name = "labelEvent2";
this.labelEvent2.Size = new System.Drawing.Size(62, 16);
this.labelEvent2.TabIndex = 3;
this.labelEvent2.Text = "Событие 2";
this.labelEvent2.Visible = false;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.labelEvent2);
this.Controls.Add(this.labelEvent1);
this.Controls.Add(this.Slave);
this.Controls.Add(this.Master);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void SetVisible1(object sender, System.EventArgs e)
{
labelEvent1.Visible=!labelEvent1.Visible;
}
private void SetVisible2(object sender, System.EventArgs e)
{
labelEvent2.Visible=!labelEvent2.Visible;
}
}
}
Здравствуйте, Аноним, Вы писали:
А>>как вызвать какое-нить другое событие кнопки slave ?
А>
А>Какое конкретно событие нужно инициировать?
А>Универсального способа (не считая reflection) для всех событий нет.
А>
данное сообщение получено с www.gotdotnet.ru
А>ссылка на оригинальное сообщение
ну сейчас трудно сказать, это я для полноты картины спросил, ну к примеру VisibleChanged. Или по крайней мере по какому принципу пойти, кроме как определить какой-нить отдельный метод, который будет вызываться событием VisibleChanged и другим событием, на которые я подпишу этот метод. (надеюсь ясно выразился
>ну к примеру VisibleChanged
В ответ на изменения свойства Control.Visible и вызов методов Control.Show()/Control.Hide().
Обратите внимание о связке в правилах именования свойств, событий и методов: при изменении свойства Control.Visible вызывается виртуальный метод Control.OnVisibleChanged, который в свою очередь, инициирует событие Control.VisibleChanged.
>Или по крайней мере по какому принципу пойти, кроме как определить какой-нить отдельный метод, который будет вызываться событием VisibleChanged и другим событием, на которые я подпишу этот метод. (надеюсь ясно выразился
Я неуверен, что понял вопрос — в ответ на что должен вызываться метод и где он должен быть определен? в классе инициирующем события или в другом классе, который подписывается на события?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение