2015-04-02 1 views
-1

Я пытаюсь передать данные из формы 1 в форму 2 Но это ошибка, даже если я добавлю класс Invoice.cs в свой проект. Ошибкане содержит определения для счета-фактуры?

Throw:

'System.Windows.Forms.Form' does not contain a definition for 'Invoice' and no extension method 'Invoice' accepting a first argument of type 'System.Windows.Forms.Form' could be found (are you missing a using directive or an assembly reference?)

Форма 1

private void button5_Click(object sender, EventArgs e) 
    { 
     Form InvoiceSystem = new Form(); 
     if (InvoiceSystem == null) 
     { 
      Invoice invoice = new Invoice(); 
      invoice.id = Convert.ToInt16(textId.Text); 
      invoice.nameItem = textNameiTem.Text; 
      invoice.priceItem = Convert.ToDouble(textPrice.Text); 
      invoice.qty = Convert.ToInt16(textQty.Text); 
      invoice.amount = Convert.ToDouble(textAmount.Text); 
      invoice.date = Convert.ToInt16(textDate.Text); 
      invoice.invoiceNo = Convert.ToInt16(textInvoice.Text); 
      InvoiceSystem.Invoice = invoice; 
      InvoiceSystem.Show(); 
     } 
    } 

Форма 2

public partial class InvoiceSystem : Form 
     { 
      public Invoice Invoice 
      { 
       set 
     { 
      textId.Text = value.id.ToString(); 
      textitem.Text = value.nameItem; 
      textPrice.Text = value.priceItem.ToString(); 
      textQty.Text = value.qty.ToString(); 
      textAmt.Text = value.amount.ToString(); 
      textdate.Text = value.date.ToString(); 
      textInvoiceNo.Text = value.invoiceNo.ToString(); 
     } 
    } 

В классе Invoice.cs

public class Invoice 
{ 
    public int id {get;set;} 
    public string nameItem { get; set; } 
    public double priceItem{get;set;} 
    public int qty { get; set; } 
    public double amount { get; set; } 
    public int date { get; set; } 
    public int invoiceNo { get; set; } 
} 

ответ

2

Вы объявили переменную как Form:

Form InvoiceSystem = new Form(); 

Form сама по себе не имеет какого-либо из ваших настроек. Это базовый класс для всех форм, встроенных в структуру. Ваш собственный класс - InvoiceSystem, который вы сделали как особый вид формы. Используйте это:

InvoiceSystem invoiceSystem = new InvoiceSystem(); 

(Заметим также, что я сделал имя переменной в нижнем регистре Так что вам нужно обновить другие строки кода, которые ссылаются на эту переменную, а не называть переменные с теми же именами, как.. . ваши классы это будет привести к путанице)


отметить также, что ваше if заявление является излишним:.

Form InvoiceSystem = new Form(); 
if (InvoiceSystem == null) 
//... 

Прямая строка . Так что эта переменная будет никогда be null на этой следующей строке.

+0

Спасибо, брат! он работает сейчас! спасибо –

+0

, пожалуйста, отметьте это как ответ, если это решает вашу проблему, –

Смежные вопросы