天天看點

c# 對話框交換資料

 本例是一個管理聯系人資訊的小程式,程式有兩個窗體,一個主窗體,在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#中對話框中互相交換資料了