如何从WinForms表单事件处理程序中处理类对象?

时间:2019-02-10 09:43:00

标签: c# winforms

这个问题看似微不足道,但由于我是个假人,我仍然遇到问题。 因此,我正在使用Windows窗体创建一个Book Store应用。

我为Book创建了一个单独的类。我要对这个Book类进行以下操作:创建Book对象,将它们添加到List中;然后,我将需要通过事件处理程序方法访问此列表的Book对象。即使将Book对象添加到列表中,我似乎仍然遇到问题。您能给我指导如何组织这种代码的方法吗?

这是两个代码:

form1.cs:

using System.Collections.Generic;
using System.Windows.Forms;

namespace BookStore
{
    public partial class BookStoreForm : Form
    {
        List<Book> Books = new List<Book>();
        Book Book1 = new Book("Author", "ISBN", 5, "Title");
       // Books.Add(Book1);

        public BookStoreForm()
        {
            InitializeComponent();
        }


    }
}

book.cs:

namespace BookStore
{
    public class Book
    {
        public string Author { get; set; }
        public string ISBN { get; set; }
        public decimal Price { get; set; }
        public string Title { get; set; }

        public Book() { }

        public Book(string Author, string ISBN, decimal Price, string Title)
        {
            this.Author = Author;
            this.ISBN = ISBN;
            this.Price = Price;
            this.Title = Title;
        }

    }
}

当我创建Book对象然后尝试将其添加到列表中时,会发生以下情况: My error

2 个答案:

答案 0 :(得分:1)

不能在函数外部(除了声明属性外)编写代码

移动代码给构造函数,它将起作用(或您选择的其他功能)

喜欢

private List<Book> Books; // this will be accessible from anywhere in you form

public BookStoreForm()
{
      InitializeComponent();
      Books = new List<Book>();
      Book Book1 = new Book("Author", "ISBN", 5, "Title");
      Books.Add(Book1);

}

private void myEvnetHandler(object sender, EventArgs e)
{
     Books.Add(new Book("Stephen R. Davis", "0764508148", 12.45m, "C# For Dummies"));
}

答案 1 :(得分:0)

您需要输入

Books.Add(Book1);

使用不在类中的方法。