?? mainform.cs
字號:
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Xml;
using System.Reflection;
namespace book
{
/// <summary>
/// Form1 的摘要說明。
/// </summary>
public class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem menuItem5;
private System.Windows.Forms.Button btnAddBook;
private System.Windows.Forms.Button btnEditBook;
private System.Windows.Forms.Button btnRemoveBook;
private System.Windows.Forms.Button btnEmptyBook;
private System.Windows.Forms.MainMenu mainMenu1;
private DataSet dsBookAdmin;
private DataTable dtBooks;
private static string DataDirectory=@"\My Documents\My Library";
private System.Windows.Forms.ListView BookList;
private bool ChangedDataSaved=true;
public MainForm()
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 調用后添加任何構造函數代碼
//
}
/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.BookList = new System.Windows.Forms.ListView();
this.btnAddBook = new System.Windows.Forms.Button();
this.btnEditBook = new System.Windows.Forms.Button();
this.btnRemoveBook = new System.Windows.Forms.Button();
this.btnEmptyBook = new System.Windows.Forms.Button();
//
// mainMenu1
//
this.mainMenu1.MenuItems.Add(this.menuItem1);
//
// menuItem1
//
this.menuItem1.MenuItems.Add(this.menuItem2);
this.menuItem1.MenuItems.Add(this.menuItem3);
this.menuItem1.MenuItems.Add(this.menuItem4);
this.menuItem1.MenuItems.Add(this.menuItem5);
this.menuItem1.Text = "文件";
//
// menuItem2
//
this.menuItem2.Text = "新建數據文件...";
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
//
// menuItem3
//
this.menuItem3.Text = "打開數據文件...";
this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
//
// menuItem4
//
this.menuItem4.Text = "保存數據文件...";
this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
//
// menuItem5
//
this.menuItem5.Text = "退出";
this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
//
// BookList
//
this.BookList.Location = new System.Drawing.Point(8, 8);
this.BookList.Size = new System.Drawing.Size(216, 208);
//
// btnAddBook
//
this.btnAddBook.Location = new System.Drawing.Point(13, 233);
this.btnAddBook.Size = new System.Drawing.Size(40, 23);
this.btnAddBook.Text = "增加";
this.btnAddBook.Click += new System.EventHandler(this.btnAddBook_Click);
//
// btnEditBook
//
this.btnEditBook.Location = new System.Drawing.Point(61, 233);
this.btnEditBook.Size = new System.Drawing.Size(40, 23);
this.btnEditBook.Text = "編輯";
this.btnEditBook.Click += new System.EventHandler(this.btnEditBook_Click);
//
// btnRemoveBook
//
this.btnRemoveBook.Location = new System.Drawing.Point(117, 233);
this.btnRemoveBook.Size = new System.Drawing.Size(40, 23);
this.btnRemoveBook.Text = "刪除";
this.btnRemoveBook.Click += new System.EventHandler(this.btnRemoveBook_Click);
//
// btnEmptyBook
//
this.btnEmptyBook.Location = new System.Drawing.Point(173, 233);
this.btnEmptyBook.Size = new System.Drawing.Size(40, 23);
this.btnEmptyBook.Text = "清空";
this.btnEmptyBook.Click += new System.EventHandler(this.btnEmptyBook_Click);
//
// MainForm
//
this.Controls.Add(this.btnEmptyBook);
this.Controls.Add(this.btnRemoveBook);
this.Controls.Add(this.btnEditBook);
this.Controls.Add(this.btnAddBook);
this.Controls.Add(this.BookList);
this.Menu = this.mainMenu1;
this.Text = "簡易圖書管理";
this.Load += new System.EventHandler(this.MainForm_Load);
}
#endregion
/// <summary>
/// 應用程序的主入口點。
/// </summary>
static void Main()
{
Application.Run(new MainForm());
}
private void btnAddBook_Click(object sender, System.EventArgs e)
{
AddbookForm addbookFrm = new AddbookForm();
if (addbookFrm.ShowDialog() == DialogResult.Cancel)
{
addbookFrm.Dispose();
}
else
{
DataRow row = dtBooks.NewRow();
row["title"] = addbookFrm.textBox1.Text;
row["author"] = addbookFrm.textBox2.Text;
row["publisher"] = addbookFrm.textBox3.Text;
row["publishing_date"] = addbookFrm.numericUpDown1.Text + "-" + addbookFrm.numericUpDown2.Text;
row["price"] = addbookFrm.textBox4.Text;
row["contentType"] = addbookFrm.domainUpDown1.Text;
row["format"] = addbookFrm.domainUpDown2.Text;
row["isbn"] = addbookFrm.textBox5.Text;
dtBooks.Rows.Add(row);
AddDataToBookListView(row);
}
}
private void btnEditBook_Click(object sender, System.EventArgs e)
{
if (BookList.SelectedIndices.Count > 0)
{
int SelectedRecord = Convert.ToInt16(BookList.SelectedIndices[0]);
EditbookForm editbookFrm = new EditbookForm(dtBooks.Rows[SelectedRecord]);
if (editbookFrm.ShowDialog() == DialogResult.OK)
{
dtBooks.Rows[SelectedRecord]["title"] = editbookFrm.textBox1.Text;
dtBooks.Rows[SelectedRecord]["author"] = editbookFrm.textBox2.Text;
dtBooks.Rows[SelectedRecord]["publisher"] = editbookFrm.textBox3.Text;
dtBooks.Rows[SelectedRecord]["publishing_date"] = editbookFrm.numericUpDown1.Text + "-" + editbookFrm.numericUpDown2.Text;
dtBooks.Rows[SelectedRecord]["price"] = editbookFrm.textBox4.Text;
dtBooks.Rows[SelectedRecord]["contentType"] = editbookFrm.domainUpDown1.Text;
dtBooks.Rows[SelectedRecord]["format"] = editbookFrm.domainUpDown2.Text;
dtBooks.Rows[SelectedRecord]["isbn"] = editbookFrm.textBox5.Text;
RenewBookListView();
ChangedDataSaved = false;
}
editbookFrm.Dispose();
}
}
private void btnRemoveBook_Click(object sender, System.EventArgs e)
{
int i =BookList.SelectedIndices[0];
BookList.Items.RemoveAt(i);
dtBooks.Rows.RemoveAt(i);
ChangedDataSaved = false;
}
private void btnEmptyBook_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("此操作將刪除所有圖書,是否繼續?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
dtBooks.Rows.Clear();
BookList.Items.Clear();
ChangedDataSaved = false;
}
}
private void AddDataToBookListView(DataRow row)
{
ListViewItem item;
item = new ListViewItem(row["title"].ToString());
item.SubItems.Add(row["author"].ToString());
item.SubItems.Add(row["publisher"].ToString());
item.SubItems.Add(row["publishing_date"].ToString());
item.SubItems.Add(row["price"].ToString());
item.SubItems.Add(row["contentType"].ToString());
item.SubItems.Add(row["format"].ToString());
item.SubItems.Add(row["isbn"].ToString());
BookList.Items.Add(item);
ChangedDataSaved = false; //A flag to remind the user when exit.
}
private void RenewBookListView()
{
ListViewItem item;
BookList.Items.Clear();
foreach(DataRow row in dtBooks.Rows)
{
item = new ListViewItem(row["title"].ToString());
item.SubItems.Add(row["author"].ToString());
item.SubItems.Add(row["publisher"].ToString());
item.SubItems.Add(row["publishing_date"].ToString());
item.SubItems.Add(row["price"].ToString());
item.SubItems.Add(row["contentType"].ToString());
item.SubItems.Add(row["format"].ToString());
item.SubItems.Add(row["isbn"].ToString());
BookList.Items.Add(item);
}
}
private void MainForm_Load(object sender, System.EventArgs e)
{
LogonForm LogonFrm = new LogonForm();
if (LogonFrm.ShowDialog() == DialogResult.Cancel)
{
LogonFrm.Dispose();
this.Close();
}
else
{
this.Text+= " - Untitle";
LogonFrm.Dispose();
//OpenCatalogFile(DataFile);
}
//Directory of XML data files
Directory.CreateDirectory(DataDirectory);
dsBookAdmin = new DataSet();
dtBooks = new DataTable();
dsBookAdmin.Tables.Add(dtBooks);
dtBooks.TableName = "Book";
dtBooks.Columns.Add("title");
dtBooks.Columns.Add("author");
dtBooks.Columns.Add("publisher");
dtBooks.Columns.Add("publishing_date");
dtBooks.Columns.Add("price");
dtBooks.Columns.Add("contentType");
dtBooks.Columns.Add("format");
dtBooks.Columns.Add("isbn");
BookList.View = View.Details;
BookList.FullRowSelect = true;
BookList.CheckBoxes = true;
BookList.Columns.Add("書名",-1, HorizontalAlignment.Center);
BookList.Columns.Add("作者",-1, HorizontalAlignment.Center);
BookList.Columns.Add("出版社",-1, HorizontalAlignment.Center);
BookList.Columns.Add("出版日期",-1, HorizontalAlignment.Center);
BookList.Columns.Add("價格",-1, HorizontalAlignment.Center);
BookList.Columns.Add("圖書類型",-1, HorizontalAlignment.Center);
BookList.Columns.Add("裝幀類型",-1, HorizontalAlignment.Center);
BookList.Columns.Add("書號",-1, HorizontalAlignment.Center);
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
dtBooks.Rows.Clear();
BookList.Items.Clear();
ChangedDataSaved = true; //An empty DataSet needn't to be saved.
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "XML files | *.xml";
dlg.InitialDirectory = DataDirectory;
if (dlg.ShowDialog() == DialogResult.OK)
{
dsBookAdmin.ReadXml(dlg.FileName);
dtBooks = dsBookAdmin.Tables["Book"];
RenewBookListView();
}
}
private void SaveDataFile(string DataFileName)
{
FileInfo BookDataFile;
XmlWriter Writer;
Cursor.Current=Cursors.WaitCursor;
//Check to see if the file already exists, and if so delete it.
BookDataFile = new FileInfo(DataDirectory + @"\" + DataFileName);
if (BookDataFile.Exists)
{
BookDataFile.Delete();
}
Writer = new XmlTextWriter(DataFileName, System.Text.Encoding.Unicode);
dsBookAdmin.WriteXml(Writer, XmlWriteMode.WriteSchema);
Writer.Close();
ChangedDataSaved = true;
Cursor.Current=Cursors.Default;
}
private void menuItem4_Click(object sender, System.EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "XML File|*.xml";
dlg.FileName = "BookDataFile.xml";
dlg.InitialDirectory = DataDirectory;
if (dlg.ShowDialog() == DialogResult.OK)
{
SaveDataFile(dlg.FileName);
}
}
private void menuItem5_Click(object sender, System.EventArgs e)
{
if(!ChangedDataSaved)
{
switch(MessageBox.Show("數據已經改變,是否存盤?", "注意", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
{
case DialogResult.Yes:
menuItem4_Click(this, new System.EventArgs());
break;
case DialogResult.No:
//do nothing;
break;
case DialogResult.Cancel:
//give up exiting
return;
}
}
this.Dispose();
this.Close();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -