0
我有这个代码使用winforms获取数据传递两个窗体(LibraryBookDialog.cs和MainForm.cs)之间。C#将一个对象从一个winform传递给一个listBox ...为什么它现在显示出来了?
这里是LibraryBookDialog.cs代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace COMP2614HomeLab08
{
public partial class LibraryBookDialog : Form
{
private LibraryBook book;
public LibraryBook Book
{
get
{
if (book == null)
{
book = new LibraryBook();
}
return book;
}
set { book = value; }
}
public LibraryBookDialog()
{
InitializeComponent();
}
private bool validateData()
{
// code that validates user input data
}
private void buttonOk_Click(object sender, EventArgs e)
{
if (validateData())
{
try
{
LibraryBook book = new LibraryBook();
book.Title = textBoxTitle.Text;
book.Author = textBoxAuthor.Text;
book.CopyrightYear = Convert.ToInt32(textBoxCopyrightYear.Text);
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "There was an error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}
这里是MainForm.cs代码:
namespace COMP2614HomeLab08
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void buttonNew_Click(object sender, EventArgs e)
{
LibraryBookDialog dlg = new LibraryBookDialog();
dlg.ShowDialog();
if (dlg.DialogResult == DialogResult.OK)
{
listBoxLibraryBooks.Items.Add(dlg.Book);
}
dlg.Dispose();
}
private void MainForm_Load(object sender, EventArgs e)
{
listBoxLibraryBooks.DisplayMember = "Title";
}
}
}
问题:为什么,当我加入LibraryBook预订对象到列表框,我得到一个空白元素。我的意思是,它在那里,列表框中的元素存在,但我不确定数据是否已从窗体传递到窗体。这是为什么?
[C#传递对象的可能重复在窗体之间](http://stackoverflow.com/questions/8024975/c-sharp-passing-objects-between-forms) –