2016-02-29 2 views
0

это, вероятно, очень просто. Это назначение для класса, кажется, несколько версий этого плавающего и несколько вариантов ответа, но я не уверен, как они работают. Назначение - создать две формы. Один с ценой в общежитии и ценами на питание, а вторая форма - отображать общую стоимость. Я хочу, чтобы цена отображалась во входной метке в ценовой форме. Кроме того, я не уверен, как получить информацию от одного к другому. Это требует, чтобы я делал get/set где-то в моей форме «Калькулятор»? Это форма 1 (калькулятор) код:Передача переменной в другую форму

public partial class Calculator : Form 
{ 
    Price myPrice = new Price(); 
    decimal dorm = 0; 
    decimal meal = 0; 

    public Calculator() 
    { 
     InitializeComponent(); 
    } 

    private void getPriceButton_Click(object sender, EventArgs e) 
    { 
     decimal price = 0; 

     getInput(); 

     price = dorm + meal; 

     myPrice.ShowDialog(); 


    } 

    private void getInput() 
    { 
     if(allenRadioButton.Checked) 
     { 
      dorm = 1500; 
     } 

     if(pikeRadioButton.Checked) 
     { 
      dorm = 1600; 
     } 

     if(farthingRadioButton.Checked) 
     { 
      dorm = 1800; 
     } 

     if(universityRadioButton.Checked) 
     { 
      dorm = 2500; 
     } 

     if(sevenRadioButton.Checked) 
     { 
      meal = 600; 
     } 

     if(fourteenRadioButton.Checked) 
     { 
      meal = 1200; 
     } 

     if(unlimitedRadioButton.Checked) 
     { 
      meal = 1700; 
     } 
    } 

Это form2 (Цена) Код:

public partial class Price : Form 
{ 
    Calculator myCalulator = new Calculator(); 

    public Price() 
    { 
     InitializeComponent(); 
    } 

    priceLabel.Text = price.myCalculator.TosString("c"); 
} 
+0

Подсказка: вы можете добавлять собственные конструкторы форм. – PTwr

+0

Возможный дубликат [Отправка переменных из формы 2 в форму1] (http://stackoverflow.com/questions/27046777/sending-variables-from-form2-to-form1) – netblognet

+0

Сделать переменные статическими –

ответ

1

вы можете сделать переменную цене во второй форме и передать свою цену конструктору Цена формы:

public string price; 
    public Price(string price) 
    { 
     this.price = price; 
     InitializeComponent(); 
    } 

    private void getPriceButton_Click(object sender, EventArgs e) 
    { 
     decimal price = 0; 
     getInput(); 
     price = dorm + meal; 
     Price myPrice = new Price(price) 
     myPrice.ShowDialog(); 
    } 
+0

Я пробовал версию обоих конструкторов, но он продолжает говорить мне, что «метод должен возвращать тип», даже если это конструктор. Я еще поработаю над этим. Спасибо, куча – secretTina

+0

Вам нужно иметь его только в конструкторе цен и передавать его во время создания myPrice, и я допустил ошибку - в вашем случае должно быть десятичное число, а не строка. – Katia

+0

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

0

Пропустите цену в качестве параметра для нового параметризованного конструктора формы цен и использовать для дальнейших операций.

private decimal _price; 

public Price(decimal pPrice) 
{ 
    InitializeComponent(); 
    _price = pPrice; 
    ... 
} 

Также создайте экземпляр объекта myPrice в событии click button с помощью этого нового конструктора. как;

Price myPrice = new Price(price); 
myPrice.ShowDialog(); 

Для других способов передачи значения из одной формы в другую, пожалуйста, обратитесь к этой ссылке; How can I pass values from one form to another? а также Passing Parameters back and forth between forms in C#

+0

благодарит всех, кто купил ... вы понятия не имеете, как далеко это заставило меня за короткий промежуток времени. спасибо – secretTina

0

Вы можете сделать это, просто добавив переменную и делает его общественность окна выглядят так.

public int PassValue 

И передать значение этого, до того, как форма называется

form1 obj = new form1(); 
obj.PassValue = 34; 
obj.Show(); 
Смежные вопросы