C# 如何在窗口中使用datagridview并在另一个窗口中显示其结果?
我已经通过Visual Studio在C#中启动了一个Windows应用程序。到目前为止还不错,但现在我有个问题。我正在使用一个sql数据库,它有很多表。突然,我不知道如何在主窗口中显示选定的搜索结果,因为我只知道如何在同一表单中使用它,而不知道如何在另一表单中显示它的结果。我知道如何管理datagridview,但我不知道如何在不同的windows窗体中显示它的选定结果。 在任何情况下,你需要它的图片或代码行,我可以稍后上传它们(我现在正在工作)C# 如何在窗口中使用datagridview并在另一个窗口中显示其结果?,c#,visual-studio,C#,Visual Studio,我已经通过Visual Studio在C#中启动了一个Windows应用程序。到目前为止还不错,但现在我有个问题。我正在使用一个sql数据库,它有很多表。突然,我不知道如何在主窗口中显示选定的搜索结果,因为我只知道如何在同一表单中使用它,而不知道如何在另一表单中显示它的结果。我知道如何管理datagridview,但我不知道如何在不同的windows窗体中显示它的选定结果。 在任何情况下,你需要它的图片或代码行,我可以稍后上传它们(我现在正在工作) 非常感谢。您可以在结果表单上处理DataGri
非常感谢。您可以在结果表单上处理
DataGridView
的SelectionChanged()
事件,让它调用一个方法在主表单上执行某些操作,并将所需的数据传递给它
您可以在结果表单上处理
DataGridView
的SelectionChanged()
事件,让它调用一个方法在主表单上执行某些操作,并将所需的数据传递给它
这两种形式之间的关系是什么?是否从主窗体打开包含DataGridView的窗体?如果是这样,您可以使用委托传输数据 MainForm.cs:
void frm_TransfEvent(string value)
{
lbResult.Text = value;
}
private void btOpen_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.TransfEvent += frm_TransfEvent;
form1.ShowDialog();
}
表格1.cs:
public event TransfDelegate TransfEvent;
private void btSend_Click(object sender, EventArgs e)
{
int rowindex = dataGridView1.CurrentRow.Index;
TransfEvent(dataGridView1.Rows[rowindex].Cells[0].Value.ToString() + ", " + dataGridView1.Rows[rowindex].Cells[1].Value.ToString());
this.Close();
}
测试结果,
更新:
首先,我们需要在calssForm2
中定义一个属性,以访问要修改的标签
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Label labelProperty
{
get { return label1; }
set { label1 = value; }
}
private void btOpenForm3_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
form3.Show();
}
}
然后打开Form7
formForm3
private void btOpenForm7_Click(object sender, EventArgs e)
{
Form7 form7 = new Form7();
form7.Show();
}
要将数据从Form7
传输到Form2
,可以使用获取Form2
的实例,并通过属性labelProperty
访问标签
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
private void btUpdateForm2_Click(object sender, EventArgs e)
{
Form2 form2 = (Form2)Application.OpenForms["Form2"];
form2.labelProperty.Text = "Test 123";
}
}
这两种形式之间的关系是什么?是否从主窗体打开包含DataGridView的窗体?如果是这样,您可以使用委托传输数据 MainForm.cs:
void frm_TransfEvent(string value)
{
lbResult.Text = value;
}
private void btOpen_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.TransfEvent += frm_TransfEvent;
form1.ShowDialog();
}
表格1.cs:
public event TransfDelegate TransfEvent;
private void btSend_Click(object sender, EventArgs e)
{
int rowindex = dataGridView1.CurrentRow.Index;
TransfEvent(dataGridView1.Rows[rowindex].Cells[0].Value.ToString() + ", " + dataGridView1.Rows[rowindex].Cells[1].Value.ToString());
this.Close();
}
测试结果,
更新:
首先,我们需要在calssForm2
中定义一个属性,以访问要修改的标签
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Label labelProperty
{
get { return label1; }
set { label1 = value; }
}
private void btOpenForm3_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
form3.Show();
}
}
然后打开Form7
formForm3
private void btOpenForm7_Click(object sender, EventArgs e)
{
Form7 form7 = new Form7();
form7.Show();
}
要将数据从Form7
传输到Form2
,可以使用获取Form2
的实例,并通过属性labelProperty
访问标签
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
private void btUpdateForm2_Click(object sender, EventArgs e)
{
Form2 form2 = (Form2)Application.OpenForms["Form2"];
form2.labelProperty.Text = "Test 123";
}
}
这回答了你的问题吗?这回答了你的问题吗?哦,天哪。这正是我需要做的。我知道如何以相同的形式管理数据,但不知道如何从Form1管理到MainForm。它应该是从三年级到二年级的,对吗?因为我使用MainForm只是为了登录system.btw,这对其他表单应该是一样的吗?还是只使用Form1到MainForm?因为我使用MainForm登录。此方法用于将数据从
子表单
传输到父表单
。那么,Form2和Form3之间的关系是什么呢?Form2是Form3的父代。结果已经很好了。它是否应该从从表单3执行的其他表单中工作?让我们假设7年级和9年级,他们都来自3年级。这应该也行吧?@G.J.Gonzalez。您的意思是说,Form3是从Form2打开的,Form7和Form9是从Form3打开的,您需要将数据表从7和9转移到Form2吗?如果是这样,我建议使用。我已经更新了答案,你可以检查一下。如果有任何误解,请与我联系。哦,天哪。这正是我需要做的。我知道如何以相同的形式管理数据,但不知道如何从Form1管理到MainForm。它应该是从三年级到二年级的,对吗?因为我使用MainForm只是为了登录system.btw,这对其他表单应该是一样的吗?还是只使用Form1到MainForm?因为我使用MainForm登录。此方法用于将数据从子表单
传输到父表单
。那么,Form2和Form3之间的关系是什么呢?Form2是Form3的父代。结果已经很好了。它是否应该从从表单3执行的其他表单中工作?让我们假设7年级和9年级,他们都来自3年级。这应该也行吧?@G.J.Gonzalez。您的意思是说,Form3是从Form2打开的,Form7和Form9是从Form3打开的,您需要将数据表从7和9转移到Form2吗?如果是这样,我建议使用。我已经更新了答案,你可以检查一下。如果有任何误解,请与我联系。