Windows Forms: How to create a Phone Book in C#
By FoxLearn 5/22/2017 9:47:18 PM 11.67K
Creating a Phone Book/Telephone Diary using datatable, dataset, read & write xml file in C#.
Step 1: Click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "PhoneBook" and then click OK
Step 2: Design your form as below
Step 3: Create a dataset to store your data
Step 4: Add code to handle your form
namespace PhoneBook { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnNew_Click(object sender, EventArgs e) { try { panel1.Enabled = true; //Add a new row App.PhoneBook.AddPhoneBookRow(App.PhoneBook.NewPhoneBookRow()); phoneBookBindingSource.MoveLast(); txtPhoneNumber.Focus(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); App.PhoneBook.RejectChanges(); } } private void btnEdit_Click(object sender, EventArgs e) { panel1.Enabled = true; txtPhoneNumber.Focus(); } private void btnCancel_Click(object sender, EventArgs e) { phoneBookBindingSource.ResetBindings(false); panel1.Enabled = false; } private void btnSave_Click(object sender, EventArgs e) { try { //End edit, save dataset to file phoneBookBindingSource.EndEdit(); App.PhoneBook.AcceptChanges(); App.PhoneBook.WriteXml(string.Format("{0}//data.dat", Application.StartupPath)); panel1.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); App.PhoneBook.RejectChanges(); } } //Use singleton pattern to create an instance static AppData db; protected static AppData App { get { if (db == null) db = new AppData(); return db; } } private void Form1_Load(object sender, EventArgs e) { //Read file, then load data to dataset string fileName = string.Format("{0}//data.dat", Application.StartupPath); if (File.Exists(fileName)) App.PhoneBook.ReadXml(fileName); phoneBookBindingSource.DataSource = App.PhoneBook; panel1.Enabled = false; } private void dataGridView_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { if (MessageBox.Show("Are you sure want to delete this record?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) phoneBookBindingSource.RemoveCurrent(); } } private void txtSearch_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13)//Enter key { if (!string.IsNullOrEmpty(txtSearch.Text)) { //you can use linq to query data var query = from o in App.PhoneBook where o.PhoneNumber == txtSearch.Text || o.FullName.ToLowerInvariant().Contains(txtSearch.Text.ToLowerInvariant()) || o.Email.ToLowerInvariant() == txtSearch.Text.ToLowerInvariant() select o; dataGridView.DataSource = query.ToList(); } else dataGridView.DataSource = phoneBookBindingSource; } } } }
VIDEO TUTORIALS
Categories
Popular Posts
Visual Studio: Auto increment version
04/01/2024
What is ARM architecture?
04/01/2024