Ответы пользователя по тегу Windows Forms
  • Почему форма не скрывается?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в-первом случае - вы создаёте новый объект типа Form1 и его же скрываете. От сюда и эффекта ноль. Т.е. вы создали другой объект и его скрываете. Не главную форму...
    во-втором случае - происходит рекурсия - т.е. объект (типа Form1) создаёт сам себя по образу и подобию "оригинала", потом второй объект создаёт сам себя по образу "оригинала" и т.д., пока буффер памяти не переполнится.

    ОТВЕТ:
    Чтобы скрыть форму (текущую, в которой вы работаете) - достаточно
    this.Hide();
    Ответ написан
    Комментировать
  • Как определить на какой Control было нажатие, если он создан кодом?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вы обращали на объект sender при создания метода Click у кнопки?
    private void button1_Click(object sender, EventArgs e)  
      {
      // тут какой-то код
      }

    так вот, этот sender и есть - та вещь, которая вам нужна, т.е.
    private void label_Click(object sender, EventArgs e)  
      {
        Label lb = sender as Label;
          lb.Content = "какой-то текст";
    // или 
         int x;
        switch((sender as Label).Name)
        { 
              case "label":  x = 0; break; 
              case "label2": x = 1; break; 
              case "label3": x = 2; break; 
              default: x = -1; break; 
        }
      }

    вот и всё) sender - знает тот объект, по которому "кликнули"
    Ответ написан
    1 комментарий
  • Как передать нажатую кнопку в другой метод C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    public void TakeMessage(string btnStatus, string userName, Button btnTest)
            {
    
    
                if (userName == "")
                {
                    MessageBox.Show("Введите Ваше имя!");
                }
    
                else if (btnStatus == "Red")
                {
                    btnTest.BackColor = Color.Green;
                    btnTest.Text = "Свободно";
                }
                else
                {
                    btnTest.BackColor = Color.Red;
                    btnTest.Text = userName;
                }
            }
    
    private void btnClick(object sender, EventArgs e)
            {
                var btn = sender as Button; 
    
                if (btn.BackColor == Color.Green)
                {
                    btnStatus = "Green";
                }
    
                else
                {
                    btnStatus = "Red";
                }
    
                Server.SendMessageToAll(btnStatus, tbLogin.Text);
                TakeMessage(btnStatus, tbLogin.Text, btn);
            }


    в вашем случае не вижу смысла создавать отдельный метод TakeMessage ... все что есть в TakeMessage, можно реализовать в одном методе обработчике: btnClick
    Ответ написан