9楼的朋友看起来有点道理,高,有点高,但还是没太看懂

你的意思是需要通用的Form?
我觉得可不可以这样:做一个公共的Form,用来编辑你所需要修改的内容,FormLoad时,根据传过来的值(你右键选择图标添加新项,比如:表名、关键字、条件等等),显示在一个DataGridView中,然后进行编辑,关闭后返回值去更新原表

 选建了一个ListViewv
       //绑定数据
        void BindData()
        {
            listView1.Items.Clear();
            string strSql = "SELECT 编号, 姓名, 性别 FROM [人事数据] Order By 编号 asc";
            SqlDataReader reader = CLASS.BuildConnCmd.BuildSqlDataReader(strSql);
            while (reader.Read())
            {
                string[] item = {                          
                                  reader["姓名"].ToString().Trim(),
                                  reader["编号"].ToString().Trim()
                                };
                ListViewItem l = new ListViewItem(item);
                l.ImageIndex = bool.Parse(reader["性别"].ToString().Trim()) == false ? 0 : 1;
                listView1.Items.Add(l);
            }
         }
        private void Form1_Load(object sender, EventArgs e)
        {
            BindData();
        }
        //listView1双击事件
        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            string xCat = listView1.SelectedItems[0].SubItems[1].Text;  //取出编号
            FormShow frm=new FormShow(xCat);  //打开 FormShow 窗体
            frm.Show();
        }
下边不用说,大家也明白了,在FormShow中获取传递的变量 xCat,然后读出数据库记录,并显示在相应的TextBox控件中
当我修改了姓名后,并闭FormShow窗体,需要在Form1窗体中点击一个刷新按钮
        private void form1RunButton_Click(object sender, EventArgs e)
        {
            BindData();
        }
像这样重新绑定一次才能更新,我的目的就是想编辑"姓名"字段后,关闭FormShow,能自动刷新
不知我这样说,大家明白了没有
楼上说的Enter事件中绑定数据,我想有点意思,"当窗体成为活动控件时发生事件",我试试看
[此贴子已经被作者于2007-7-24 12:43:23编辑过]

选建了一个ListViewv
       //绑定数据
        void BindData()
        {
            listView1.Items.Clear();
            string strSql = "SELECT 编号, 姓名, 性别 FROM [人事数据] Order By 编号 asc";
            SqlDataReader reader = CLASS.BuildConnCmd.BuildSqlDataReader(strSql);
            while (reader.Read())
            {
                string[] item = {                          
                                  reader["姓名"].ToString().Trim(),
                                  reader["编号"].ToString().Trim()
                                };
                ListViewItem l = new ListViewItem(item);
                l.ImageIndex = bool.Parse(reader["性别"].ToString().Trim()) == false ? 0 : 1;
                listView1.Items.Add(l);
            }
         }
        private void Form1_Load(object sender, EventArgs e)
        {
            BindData();
        }
        //listView1双击事件
        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            string xCat = listView1.SelectedItems[0].SubItems[1].Text;  //取出编号
            FormShow frm=new FormShow(xCat);  //打开 FormShow 窗体
            frm.Show();
        }
下边不用说,大家也明白了,在FormShow中获取传递的变量 xCat,然后读出数据库记录,并显示在相应的TextBox控件中
当我修改了姓名后,并闭FormShow窗体,需要在Form1窗体中点击一个刷新按钮
        private void form1RunButton_Click(object sender, EventArgs e)
        {
            BindData();
        }
像这样重新绑定一次才能更新,我的目的就是想编辑"姓名"字段后,关闭FormShow,能自动刷新
不知我这样说,大家明白了没有
楼上说的Enter事件中绑定数据,我想有点意思,"当窗体成为活动控件时发生事件",我试试看
改下这句话:
            FormShow frm=new FormShow(xCat);  //打开 FormShow 窗体
            frm.Show();
修改为:   
           FormShow frm=new FormShow(xCat);  
           frm.ShowDialog();
           ...这行根刷新语句
原理是:程序执行的时候,会先执行frm.showDialog(),当frm窗口关闭以后程序才会继续往下执行,
        所以,在showdialog后面加刷新语句就不是不管有没有改动,打开这个窗体关闭后就让他刷新。
[此贴子已经被作者于2007-7-24 18:10:53编辑过]
