2012-03-08 53 views
0

我有一个winforms应用程序,有一个tabcontrol与2页。自动读取xml到Datagridview onClick的TabControl

在这两个页面上,我都有数据显示在一个名为TaskTable的datagridview中。数据从绑定到XML文件的TaskDataSet显示。

但是,目前显示数据的唯一方法是单击“读取XML”按钮,因此当任何一个页面第一次点击时,datagridview都是空的,我不喜欢。

当单击任一页面时,我想让datagridview自动填充。

任何想法如何做到这一点:

这里是没有什么帮助我对读取XML按钮代码:

private void ReadXmlButton_Click(object sender, EventArgs e) // event handler to display saved tasks. 
    { 

     if (TaskTable.Rows.Count == 0) 
     { 
      DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn(); // checkbox column = 'column' 

      { 
       column.HeaderText = "Complete"; 
       column.Name = "Complete"; 
       column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; 
       column.FlatStyle = FlatStyle.Standard; 
       column.ThreeState = false; 
       column.CellTemplate = new DataGridViewCheckBoxCell(); 
       column.CellTemplate.Style.BackColor = Color.White; 
       column.CellTemplate.Style.ForeColor = Color.Green; 
      } 

      TaskTable.Columns.Insert(0, column); // Column of checkboxes. 

      TaskDataSet.Clear(); // Clears dataset 
      TaskDataSet.ReadXml(fileURL); 
      TaskTable.DataSource = TaskDataSet; 
      TaskTable.DataMember = "Task"; 
      TaskTable.Columns[5].Visible = false; // hides numeric priority - only used for sorting 
     } 
     else 
     { 
      TaskDataSet.Clear(); // Clears dataset 
      TaskDataSet.ReadXml(fileURL); // reads xml to retrieve any additional tasks that have been added to the XML file.      
      TaskTable.DataSource = TaskDataSet; 
      TaskTable.DataMember = "Task"; 
      TaskTable.Columns[5].Visible = false; // hides numeric priority - only used for sorting 
     } 

    } 

任何帮助将不胜感激!

+0

填写表单构造函数中的数据?更多的上下文会有所帮助。 – 2012-03-08 12:39:05

回答

0

快速谷歌搜索显示,TabControl的提出了一些事件 - 也许是最合适的情况如下: ​​

挂钩到该事件并加载你的XML。

+0

感谢您的回复。对不起,我在我的问题上犯了一个小错误。我有一个tabControl不是2.我想要的是基于哪个页面的tabcontrol被点击触发的事件。我猜它是一个类似的问题,但! – Rob 2012-03-08 13:23:43