C# проверка нажатия кнопки

Я делаю программу, которая должна продолжаться, если 2 условия. Первые 2 текстовых поля имеют одно и то же слово, и была нажата кнопка, которая открывает новую форму. Вы видите, что я пытаюсь сделать регистрационную форму ;) Теперь у меня есть событие для кнопки "Завершить".

private void button2_Click(object sender, EventArgs e)
    {
        if (textBox2.Text == textBox3.Text && ???) { 

            StreamWriter myWriter = File.CreateText(@"c:Program Filestext.txt");
            myWriter.WriteLine(textBox1.Text);
            myWriter.WriteLine(textBox2.Text);

моя проблема в том, что я не могу найти метод, который дает что-то вроде button1.Щелкнул или что-то похожее.

Я надеюсь, что кто-то может помочь мне здесь..

4 ответов


Click - это событие, которое возникает сразу после того, как вы отпустите кнопку мыши. Поэтому, если вы хотите проверить обработчик для button2.Click Если button1 был нажат раньше, все, что вы могли сделать, это иметь обработчик для button1.Click который устанавливает флаг bool вашего собственного создания в true.

private bool button1WasClicked = false;

private void button1_Click(object sender, EventArgs e)
{
    button1WasClicked = true;
}

private void button2_Click(object sender, EventArgs e)
{
    if (textBox2.Text == textBox3.Text && button1WasClicked)
    { 
        StreamWriter myWriter = File.CreateText(@"c:\Program Files\text.txt");
        myWriter.WriteLine(textBox1.Text);
        myWriter.WriteLine(textBox2.Text);
        button1WasClicked = false;
    }
}

Это очень помогло мне: я хотел сохранить значения из моего gridview, и он перезагружал мой gridview /переопределяя мои новые значения, так как у меня есть IsPostBack внутри моей загрузки страницы.

if (HttpContext.Current.Request["MYCLICKEDBUTTONID"] == null)
{
   //Do not reload the gridview.

}
else
{
   reload my gridview.
}

источник: http://bytes.com/topic/asp-net/answers/312809-please-help-how-identify-button-clicked


button1, button2 и button3 имеют одинаковый четный обработчик

private void button1_Click(Object sender, EventArgs e)
    {
        Button btnSender = (Button)sender;
        if (btnSender == button1 || btnSender == button2)
        {
            //some code here
        }
        else if (btnSender == button3)
            //some code here
    }

Я очень новичок в этом сайте. Я студент-бакалавр, делаю свой бакалавр компьютерных приложений. Я делаю простую программу в Visual Studio с использованием C# и я столкнулся с той же проблемой, как проверить нажата кнопка? Я хотел сделать это,

if(-button1 is clicked-) then
{
this should happen;
}
if(-button2 is clicked-) then
{
this should happen;
}

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

int i;
private void button1_Click(object sender, EventArgs e)
        {
            i = 1;
            label3.Text = "Principle";
            label4.Text = "Rate";
            label5.Text = "Time";
            label6.Text = "Simple Interest";
        }


private void button2_Click(object sender, EventArgs e)
        {
            i = 2;
            label3.Text = "SI";
            label4.Text = "Rate";
            label5.Text = "Time";
            label6.Text = "Principle";
        }
private void button5_Click(object sender, EventArgs e)
        {

            try
            {
                if (i == 1)
                {
                    si = (Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text)) / 100;
                    textBox4.Text = Convert.ToString(si);
                }
                if (i == 2)
                {
                    p = (Convert.ToInt32(textBox1.Text) * 100) / (Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text));
                    textBox4.Text = Convert.ToString(p);
                }

I объявил переменную " i " и назначил ее с разными значениями в разных кнопках и проверил значение i в функции if. Это сработало. Дайте свои предложения, если таковые имеются. Спасибо.