Как при нажатии одной кнопки вызвать событие нажатия другой
От: Kaiser_SuSe  
Дата: 17.09.04 08:29
Оценка:
Я счас изучаю события и вот столкнулся пока с непонятной ситуацией
Как при нажатии одной кнопки в форме вызвать событие нажатия другой. К другой кнопке привязаны 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
Re: Как при нажатии одной кнопки вызвать событие нажатия дру
От: Аноним  
Дата: 17.09.04 08:32
Оценка:
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 08:35
Оценка:
this.Master.Click += new System.EventHandler(this.SetVisible2);



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Как при нажатии одной кнопки вызвать событие нажатия другой
От: Аноним  
Дата: 17.09.04 08:40
Оценка:
Как, имея ссылку на Button, инициировать его событие Click, заставив, выполнится тем самым, все обработчики этого события?



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Допустил неточность...счас все верно
От: Kaiser_SuSe  
Дата: 17.09.04 08:43
Оценка:
Я счас изучаю события и вот столкнулся пока с непонятной ситуацией
Как при нажатии одной кнопки в форме вызвать событие нажатия другой. К другой кнопке привязаны 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.SetVisible1);
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;
}

}
}
Re: Как при нажатии одной кнопки вызвать событие нажатия дру
От: Kaiser_SuSe  
Дата: 17.09.04 08:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>this.Master.Click += new System.EventHandler(this.SetVisible2);



А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


я несколько не корректно написал код, уже поправил..посмотрите ниже мой пост.
Re: Как при нажатии одной кнопки вызвать событие нажатия дру
От: Аноним  
Дата: 17.09.04 08:49
Оценка:
Может нужен метод Button.PerformClick()


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как при нажатии одной кнопки вызвать событие нажатия дру
От: Kaiser_SuSe  
Дата: 17.09.04 09:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как, имея ссылку на Button, инициировать его событие Click, заставив, выполнится тем самым, все обработчики этого события?



А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


private void Master_Click(object sender, System.EventArgs e)
{
Slave.PerformClick();
}

спасибо..проходит....а на будущее ... как вызвать какое-нить другое событие кнопки slave ?
Re[2]: Мда...Slave.PerformClick() проходит
От: Kaiser_SuSe  
Дата: 17.09.04 09:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Может нужен метод Button.PerformClick()


А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


Slave.PerformClick() проходит. спасибо
Re: Как при нажатии одной кнопки вызвать событие нажатия дру
От: Аноним  
Дата: 17.09.04 11:28
Оценка:
>как вызвать какое-нить другое событие кнопки slave ?

Какое конкретно событие нужно инициировать?
Универсального способа (не считая reflection) для всех событий нет.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Как при нажатии одной кнопки вызвать событие нажатия
От: Kaiser_SuSe  
Дата: 17.09.04 12:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>как вызвать какое-нить другое событие кнопки slave ?

А>

А>Какое конкретно событие нужно инициировать?
А>Универсального способа (не считая reflection) для всех событий нет.

А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


ну сейчас трудно сказать, это я для полноты картины спросил, ну к примеру VisibleChanged. Или по крайней мере по какому принципу пойти, кроме как определить какой-нить отдельный метод, который будет вызываться событием VisibleChanged и другим событием, на которые я подпишу этот метод. (надеюсь ясно выразился
Re[2]: Как при нажатии одной кнопки вызвать событие нажатия
От: Аноним  
Дата: 19.09.04 07:12
Оценка:
>ну к примеру VisibleChanged

В ответ на изменения свойства Control.Visible и вызов методов Control.Show()/Control.Hide().
Обратите внимание о связке в правилах именования свойств, событий и методов: при изменении свойства Control.Visible вызывается виртуальный метод Control.OnVisibleChanged, который в свою очередь, инициирует событие Control.VisibleChanged.

>Или по крайней мере по какому принципу пойти, кроме как определить какой-нить отдельный метод, который будет вызываться событием VisibleChanged и другим событием, на которые я подпишу этот метод. (надеюсь ясно выразился

Я неуверен, что понял вопрос — в ответ на что должен вызываться метод и где он должен быть определен? в классе инициирующем события или в другом классе, который подписывается на события?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.