本例是一個管理聯系人資訊的小程式,程式有兩個窗體,一個主窗體,在listview控件中顯示聯系人資訊清單,一個對話框窗體,用來顯示和修改 某個聯系人的資訊。通過主窗體的菜單指令,可以打開對話框,并把主窗體listview中的目前選中的聯系人資料傳遞給對話框,在對話框中可以對聯系人信 息進行修改,修改完畢後,單擊确定按鈕,主窗體根據使用者在對話框中的輸入更新listview空間
1.建立一個windows應用程式
2.在項目中添加聯系人類。如下
[c-sharp] view plain copy print?
public class conntactpeople
{
private String _name;
public String name
{
get { return _name; }
set { _name = value; }
}
private bool _isFemale=false;
public bool isFemale
get { return _isFemale; }
set { _isFemale = value; }
private DateTime _dateOfBirth;
public DateTime dateOfBirth
{
get { return _dateOfBirth;}
set { _dateOfBirth = value;}
}
private String _company;
public String company
get { return _company; }
set { _company = value; }
}
private String _telephone;
public String telephone
get { return _telephone; }
set { _telephone = value; }
3.添加一個窗體對話框
4.在contactDialog窗體的load時間中,對窗體進行初始化。代碼如下
button1.DialogResult = DialogResult.OK;
button2.DialogResult = DialogResult.Cancel;
5.在contactDialog類中,添加一個Contact類型的屬性,用來與外界交換資料。代碼如下:
private conntactpeople _contact;
public conntactpeople contact
{
get
{
conntactpeople c = new conntactpeople();
c.name = textBox1.Text;
c.company = textBox2.Text;
c.dateOfBirth = dateTimePicker1.Value;
c.telephone = maskedTextBox2.Text;
c.isFemale = radioButton2.Checked;
return c;
}
set
textBox1.Text = value.name;
radioButton2.Checked = value.isFemale;
radioButton1.Checked = !value.isFemale;
dateTimePicker1.Value = value.dateOfBirth;
textBox2.Text = value.company;
maskedTextBox2.Text = value.telephone;
}
6.在主船體中添加listview空間,以及ContextMenustrip空間,添加菜單項:添加,删除,修改。并把listview的ContextMenuStrip設定為此菜單。此時,主窗體就可以用Contact類了。
7.在主窗體的load事件添加代碼:
listView1.View = View.Details;
listView1.GridLines=true;
listView1.Columns.Add("姓名", 80);
//listView1.co
listView1.Columns.Add("性别", 40);
listView1.Columns.Add("出生日期", 100);
listView1.Columns.Add("工作機關",160);
listView1.Columns.Add("聯系電話", 100);
listView1.HideSelection = true;
listView1.FullRowSelect = true;
ContactDialog dialog = new ContactDialog();
dialog.Owner = this;
8.主窗體中的添加,删除,更新按鈕中添加相應代碼即可
private void 添加ToolStripMenuItem_Click(object sender, EventArgs e)
ContactDialog dialog = new ContactDialog();
// dialog.contact = null;
if (dialog.ShowDialog()==DialogResult.OK)
{
addContact(dialog.contact);
}
//添加函數
private void addContact(conntactpeople c)
ListViewItem item = listView1.Items.Add(c.name);
updateContact(item, c);
//更新函數
private void updateContact(ListViewItem item,conntactpeople c)
item.SubItems.Clear();
//item.SubItems.c
item.Text = c.name;
if (c.isFemale)
item.SubItems.Add("女");
else
item.SubItems.Add("男");
item.SubItems.Add(c.dateOfBirth.ToString("yyyy-MM-dd"));
item.SubItems.Add(c.company);
item.SubItems.Add(c.telephone);
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
if (listView1.SelectedIndices.Count>0)
if (MessageBox.Show("ni"+listView1.Items[listView1.SelectedIndices[0]].Text+"ma?","dd",MessageBoxButtons.YesNoCancel)==DialogResult.Yes)
{
listView1.Items.RemoveAt(listView1.SelectedIndices[0]);
// listView1.Items.RemoveAt(listView1.SelectedIndices[])
}
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
if (listView1.SelectedIndices.Count==0)
MessageBox.Show("請選擇要修改的人");
return;
conntactpeople c = new conntactpeople();
ListViewItem item = listView1.SelectedItems[0];
c.name = item.Text;
//item.SubItems[];
c.isFemale=(item.SubItems[1].Text=="女");
try
c.dateOfBirth = DateTime.Parse(item.SubItems[2].Text.ToString());
catch
System.Diagnostics.Trace.Write(c.dateOfBirth);
MessageBox.Show(item.SubItems[2].Text);
//System.Diagnostics.Trace(item.SubItems[1].Text);
c.company = item.SubItems[3].Text;
c.telephone = item.SubItems[4].Text;
ContactDialog dialog = new ContactDialog();
dialog.contact = c;
updateContact(item, dialog.contact);
這樣就可以達到c#中對話框中互相交換資料了