将构建在一个Windows窗体上的DataView中的值推送到另一个Windows窗体

时间:2018-05-13 13:25:34

标签: c#

我有2个窗体。一个表单带有datagridview和button,另一个表单带有标签。或多或少像Master-Detail设计。我在数据库中有2个相关的表。我可以很好地使用主表中的数据填充datagridview。首先,我在datagridview上选择数据,我想使用该按钮在另一个表单上的标签上显示值。

在datagridview上加载数据后;我使用以下代码来根据datagridview的选择过滤基础表:

[form 2]
public DataView EnterpriseView()
    {
        foreach (DataGridViewRow row in Viewer.SelectedRows)
            identifier = row.Cells["BusinessName"].Value.ToString();

        var EnterpriseVw = new DataView(EnterpriseDT)
        {
            RowFilter = "BusinessName = '" + identifier + "'"
        };

        return EnterpriseVw;
     }

返回视图后,我想使用该按钮将信息推送到另一个带有标签的表单。我不知道如何让这个工作。我尝试了不同的自己的代码,但它不起作用

我的问题是如何编码button_click事件。还有另外一个我需要打电话才能工作的事件吗?按钮如何知道我是否在datagridview上选择了某些内容? datagridview如何知道我点击了按钮?我为这个按钮绑了这样的东西:

[form 2]
private void button1_Click(object sender, EventArgs e)
    {
        index = Viewer.SelectedRows[0].Index;

        Viewer.Rows[index].Selected = true;

        //EnterpriseView();
        //DetailsView();
        //this.Click += new EventHandler(Viewer_SelectionChanged);

        if (Viewer.Rows[index].Selected == true)
        {
            var frm1 = new form1(); //form with labels
            //foreach(DataGridViewRow row in Viewer.SelectedRows)         
            frm1.Publish();  //method that assigns data to labels
        }

它不起作用

我尝试使用这样的标签作为标签:

[form 1]
public void Publish()
    {
        var frm2 = new form2();
        var vEnterprise = frm2.EnterpriseView();

        Email.DataBindings.Add("Text", vEnterprise, "EmailAddress");
}

0 个答案:

没有答案