一定要记得数据更新后调用方法
dgv.Bingding();

解决方案 »

  1.   

    我也看不出来什么问题所以才求教
    楼上的,2.0里面已经没有Bingding()方法了继续期待
      

  2.   


    我还在一步一步追踪
    主要应该还是我对2.0版本的DataGridView不是那么了解吧
    不清楚它数据绑定的机制
    还是谢谢楼上了
      

  3.   

    TabControl tc = new TabControl();
                this.Controls.Add(tc);
                for (int i = 0; i < search.ResultForShow.Tables.Count; i++)
                {
                    tc.TabPages.Add(i.ToString());
                }
                for (int i = 0; i < search.ResultForShow.Tables.Count; i++)
                {
                    DataGridView dgv = new DataGridView();
                    dgv.Name = search.ResultForShow.Tables[i].TableName;
                    dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    dgv.MultiSelect = false;
                    dgv.DataSource = search.ResultForShow.Tables[i];
                    tc.TabPages[i].Add(dgv);
                }看这样行不
      

  4.   

    dgv.DataSource = dt; 
    dgv.DataSource = dt.DefaultView; 试试
      

  5.   

    DataGridView控件TabPage中如果有数据,要让其显示,必须保证该控件中<Columns>与</Columns>之间有显示的字段。
      

  6.   

    代码测试是没有问题的,下面给出了form1上点击按钮显示form2的举例,其中使用了两个表。可能的问题还是表中无记录,因为dgv的各个事件没有引发。
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }    private void Form2_Load(object sender, EventArgs e)
        {
            DataSet dataSet = new DataSet();        DataTable dataTable1 = new DataTable("Table1");        dataTable1.Columns.Add("ID", typeof(string));
            dataTable1.Columns.Add("Name", typeof(string));        dataTable1.Rows.Add(new string[] { "D1", "Natalia" });
            dataTable1.Rows.Add(new string[] { "D2", "Jonathan" });        DataTable dataTable2 = new DataTable("Table2");        dataTable2.Columns.Add("ID", typeof(string));
            dataTable2.Columns.Add("Name", typeof(string));        dataTable2.Rows.Add(new string[] { "D3", "Natalia2" });
            dataTable2.Rows.Add(new string[] { "D3", "Jonathan2" });        dataSet.Tables.Add(dataTable1);
            dataSet.Tables.Add(dataTable2);        foreach (DataTable dt in dataSet.Tables)
            {
                if (dt != null && dt.Rows.Count > 0)
                {
                    TabPage subtp = new TabPage(dt.TableName);
                    DataGridView dgv = new DataGridView();
                    dgv.Name = dt.TableName;
                    dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    dgv.MultiSelect = false;
                    dgv.DataSource = dt;                subtp.Controls.Add(dgv);
                    dgv.Dock = DockStyle.Fill;
                    tabControl1.TabPages.Add(subtp);                dgv.CellMouseDoubleClick += new DataGridViewCellMouseEventHandler(dgv_CellMouseDoubleClick);
                    dgv.CellEndEdit += new DataGridViewCellEventHandler(dgv_CellEndEdit);
                    dgv.CellBeginEdit += new DataGridViewCellCancelEventHandler(dgv_CellBeginEdit);
                    dgv.RowHeaderMouseClick += new DataGridViewCellMouseEventHandler(dgv_RowHeaderMouseClick);
                    dgv.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dgv_DataBindingComplete);
                }
            }
        }    private void dgv_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { }
        private void dgv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { }
        private void dgv_CellEndEdit(object sender, DataGridViewCellEventArgs e) { }
        private void dgv_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { }
        private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { }
    }
      

  7.   

    另,TabPage控件中的DataGridView是否显示了对应的字段(列)名?