//form1中“修改”按钮事件
        private void editButton_Click(object sender, EventArgs e)
        {
            ListViewItem LVItems = listView1.FocusedItem;
            datasourceInfoFrom dsInfoForm = new datasourceInfoFrom();
            dsInfoForm.Show();
            dsInfoForm.textService.Text = LVItems.SubItems[0].Text;
            dsInfoForm.comboType.Text = LVItems.SubItems[1].Text;
            dsInfoForm.textUsername.Text = LVItems.SubItems[2].Text;
            dsInfoForm.textPassword.Text = LVItems.SubItems[3].Text;
            dsInfoForm.textService.Enabled = false;
        }
//form2中“保存”按钮事件
        private void saveButton_Click(object sender, EventArgs e)
        {
            XElement xel = XElement.Load("C:\\DataConfig.xml");
            var item = from x in xel.Descendants("Connection")
                       where (string)x.Element("database") == textService.Text
                       select x;
            foreach (var c in item)
            {
                c.Element("basetype").ReplaceWith(new XElement("basetype", comboType.Text));
                c.Element("username").ReplaceWith(new XElement("username", textUsername.Text));
                c.Element("password").ReplaceWith(new XElement("password", textPassword.Text));
            }
            xel.Save("C:\\DataConfig.xml");
            MessageBox.Show("数据源信息修改成功!");
            this.Close();           
        }
listview中显示内容的代码如下:
//将配置文件信息Fill到Dataset   
            DataSet dataSet = new DataSet();
            dataSet.ReadXml("C:\\DataConfig.xml");
            DataTable dataTable = dataSet.Tables[0];
            listView1.Columns.Clear();
            listView1.Items.Clear();
            listView1.Columns.Add("数据库名", 150, HorizontalAlignment.Left);
            listView1.Columns.Add("类型", 150, HorizontalAlignment.Left);
            listView1.Columns.Add("用户名", 150, HorizontalAlignment.Left);
            listView1.Columns.Add("密码", 150, HorizontalAlignment.Left);
            ListViewItem l = null;
            foreach (DataRow row in dataSet.Tables[0].Rows)
            {
                l = new ListViewItem(row["database"].ToString());
                l.SubItems.Add(row["basetype"].ToString());
                l.SubItems.Add(row["username"].ToString());
                l.SubItems.Add(row["password"].ToString());
                listView1.Items.Add(l);
            }
            dataTable.Dispose();
            dataSet.Dispose();以上是现在的代码,选中form1中一条记录按修改按钮,弹出form2,我想点击保存按钮后,form1中的listview显示修改后的列表,在form2打开的时候,form1不关闭,请高手们帮看一下

解决方案 »

  1.   

    在FORM1中写一个public方法,重新取数据到listview,
    打开FORM2的时候将Form1传入到 Form2中,保存之后就可以再Form2中调用FORM1的方法来刷新listview数据了
      

  2.   

    你在点击按钮事件的代码中,调用ListView的数据绑定事件即可
      

  3.   

    可以在修改FORM1中某条记录时,读取并保存那条记录的索引项,在FORM2修改并保存数据信息后,FORM1读取刚刚保存记录的索引项,这样也可以实现显示刚刚修改那条记录的信息。