如何从我的WinForms表格的事件处理程序处理类的对象?

问题描述 投票:0回答:2

这个问题似乎微不足道,但我仍然有问题,因为我是一个假人。所以,我创建Windows窗体一个书店的应用程序。

我已经创建了书一个单独的类。我想这本书课上做如下:创建图书的对象,将它们添加到列表;然后,我将需要从事件处理方法访问此列表的书对象。好像我有,即使将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

c# winforms
2个回答
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"));
}

0
投票

你需要把

Books.Add(Book1);

在一个方法不能在类。

© www.soinside.com 2019 - 2024. All rights reserved.