C# 如何从WinForms窗体事件处理程序操作类对象?
这个问题可能看起来很琐碎,但我仍然有问题,因为我是个笨蛋。 因此,我正在使用Windows窗体创建一个书店应用程序 我为Book创建了一个单独的类。我想对这个Book类执行以下操作:创建Book对象,将它们添加到列表中;然后,我需要从事件处理程序方法访问此列表的Book对象。似乎我在将Book对象添加到列表中时也遇到了问题。你能告诉我如何组织这种代码吗 以下是两个代码: 表格1.cs:C# 如何从WinForms窗体事件处理程序操作类对象?,c#,winforms,C#,Winforms,这个问题可能看起来很琐碎,但我仍然有问题,因为我是个笨蛋。 因此,我正在使用Windows窗体创建一个书店应用程序 我为Book创建了一个单独的类。我想对这个Book类执行以下操作:创建Book对象,将它们添加到列表中;然后,我需要从事件处理程序方法访问此列表的Book对象。似乎我在将Book对象添加到列表中时也遇到了问题。你能告诉我如何组织这种代码吗 以下是两个代码: 表格1.cs: using System.Collections.Generic; using System.Windows.
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对象,然后尝试将其添加到列表中时发生的情况:
您需要将
Books.Add(Book1);
在不在类中的方法中。您不能在函数之外编写代码(除了声明属性) 移动你的代码,构造函数就会工作(或者你选择的其他函数) 像这样
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"));
}
private List book;//您可以从表单中的任何位置访问此内容
公共书店表格()
{
初始化组件();
书籍=新列表();
Book Book1=新书(“作者”、“ISBN”、5、“标题”);
新增(第1册);
}
私有void myEvnetHandler(对象发送方,事件参数e)
{
图书。添加(新书(“斯蒂芬·R·戴维斯”,“0764508148”,12.45米,“傻瓜书”);
}
但是如果我将它放在一个方法中,我是否可以说,它可能无法从其他方法访问?您可以定义一个方法,然后在其他方法中调用它。但是,我无法从事件处理程序访问图书列表,这从一开始就是问题所在。所以,如果我写Books.Add(新书(“StephenR.Davis”,“0764508148”,12.45m,“C#For Dummies”)
在事件处理程序方法中,它表示“当前上下文中不存在书籍”,但我无法从事件处理程序访问书籍列表,这从一开始就是问题所在。所以,如果我写Books.Add(新书(“StephenR.Davis”,“0764508148”,12.45m,“C#For Dummies”)
在事件处理程序方法中,它表示“书籍在当前上下文中不存在”
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"));
}