From A 中有一个ComboList, 利用一个Dateset填值定义操作如下:    public partial class CourseSetupForm : Form
    {
        public CourseSetupForm()
        {
            InitializeComponent();
        }
//加载的Dataset
        private void CourseSetupForm_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“enWordDataSet.Courses”中。您可以根据需要移动或移除它。
            this.coursesTableAdapter.Fill(this.enWordDataSet.Courses);        }//当ComboBox选项改变时,将数据库对应的数据根据编号写入本窗口的dataGridView控件中。
        private void comboBoxCourse_SelectedIndexChanged(object sender, EventArgs e)
        {
            
                int i = int.Parse(comboBoxCourse.SelectedValue.ToString());                Elephant.DefinClass.EnWordDB.ShowAllInformation(dataGridViewThisCourse, i);
            
        }
//新建了一个窗体B,可以添加课程选项,也就是添加后comboBox中的选项应该更新。
        private void buttonAddCourse_Click(object sender, EventArgs e)
        {
            Elephant.SubForms.CourseOperate.AddCourseForm iAddCourseForm = new Elephant.SubForms.CourseOperate.AddCourseForm();
            iAddCourseForm.ShowInTaskbar = false;
            iAddCourseForm.Show(this);
            this.Refresh();
        }
}}问题描述当打开窗体B的时候,B操作为更新A中ComboBox数据源。因此在关闭B窗体时,希望A中ComboBox也随着数据源的更新还更新。也就是重新加载一下数据源。我把CourseSetupForm_Load(this,null);放到comboBoxCourse_SelectedIndexChanged函数中,但是提示出错,comboBox.SelectedValue为空。请问如何解决。谢谢大家了。

解决方案 »

  1.   

    楼上仿佛没有理解我的意思..并不是数据库操作。
    数据库操作我都是这么写的。我说的是Dataset的绑定comboBox后,  遇到刷新问题应该如何解决。
      

  2.   

    新窗体B采用showdialog显示
    这样showdialog方法后的处理将中断,直到关闭窗体B后才继续执行后方的处理
    所以可以在showdialog方法后再重新加载数据并绑定到comboList对象
      

  3.   


    FormA中ComboBox数据源 为X
    在FormA一个Button响应了一个FromB.showdialog()方法。同时FromB可以操作数据源X.但是在FromB关闭以后X已经改变了。但是A中的ComboBox值没有改变,问题是这样的。
    能结合代码谈一下修改意见吗?
      

  4.   

    关闭FormB之后,再从新将数据源重新绑定到comoBox,既然数据源改变了,新绑定的数据源肯定会让comoBox变化