【发布时间】:2018-05-13 13:25:34
【问题描述】:
我有 2 个窗体。一个带有 datagridview 和按钮的表单,另一个带有标签的表单。或多或少像主细节设计。我在数据库中有 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");
}
【问题讨论】:
-
您可以在第二个表单上声明一个构造函数或一些静态字段并传递详细信息。
-
我相信您的意思是用于为标签分配值的静态字段?你能提供一个代码示例吗?对按钮单击事件进行编码怎么样?
-
将值从一种形式传递到另一种形式不是问题吗?
-
刚刚编辑显示表单名称,我现在如何布置代码。这样,如果我做错了什么,您可以轻松地提供帮助
-
@ZohirSalakCeNa。谢谢。我会尝试使用静态字段。
标签: c#