2013-09-04 1 views
0

На form1 Я хочу, чтобы сохранить имя кнопки, которая называется этой формой, чтобы я мог выполнить некоторый код в зависимости от нажатия кнопкимагазин свойство кнопки, который начал действие

button bt1=new button(); 
button bt2=new button(); 

private void b1_click(object sender, eventargs e) 
{ 
    form1 f1=new form1(); 
    f1.show(); 
} 

private void b2_click(object sender, eventargs e) 
{ 
    form1 f1=new form1(); 
    f1.show(); 
} 

ответ

0

Есть несколько способов сделать это , я предлагаю один из следующих способов

Использование конструктора форм:

т.е.

form1 f1 = new form1("MyButtonName"); 

, а затем в конструкторе формы

public form1(string buttonName) 
{ 
    this.ButtonName = buttonName; 
} 

или установки свойства вручную

form1 f1 = new form1(); 
f1.ButtonName = "MyButtonName"; 

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

Примечание: вы можете изменить название свойства так, как вам нравится.

+0

Спасибо Вы Йохан и Лайош Арпад – user1058384

+0

@ user1058384 все теперь исправлена? – Johan

0

Добавить объект или элемент в форме1 с именем CallerName.

Установите его в конструктор.

0

Если вы хотите предоставить новую форму только одному параметру, я согласен с тем, что хорошим решением проблемы является создание конструктора с одним параметром, как показывает johan.

Если вы хотите внести дополнительные изменения в форму до того, как вы ее покажете, вы можете создать свойство в форме, которое в то время как установлено, задает свойства формы или методы. Хорошо, когда вам нужно изменить поведение одной формы, которая используется в нескольких местах в коде.

Например, форма модифицированного свойства с конструктором по умолчанию:

public class MyForm : Form 
{ 
    public string HeaderText 
    { 
     get {return this.Text;} 
     set {this.Text = value;} 
    } 

    private MyLayoutEnum _LayoutStyle; 
    public MyLayoutEnum LayoutStyle 
    { 
     get 
     { 
      return this._LayoutStyle; 
     } 
     set 
     { 
      this._LayoutStyle = value; 
      switch (value) 
      { 
       case MyLayoutEnum.Basic: 
        { 
         //do work 
         break; 
        } 
       case MyLayoutEnum.Advanced: 
        { 
         //do work 
         break; 
        } 
       default: 
        { 
         //unsupported case - for example 
         break; 
        } 
      } 
     } 
    } 
} 

public enum MyLayoutEnum : int 
{ 
    None = 0, 
    Basic = 1, 
    Advanced = 2 
} 
Смежные вопросы