C# 根据从datagrid中选择的行打开表单

C# 根据从datagrid中选择的行打开表单,c#,winforms,C#,Winforms,出于好奇,是否可以在datagrid中基于行选择打开表单?我还需要表单来显示基于datagrid中用户名的信息。人员用户名包含在数据网格的行中。您必须对其进行编码,但是的,这是可能的 首先,用您可以处理的数据填充DataGrid 在DataGrid的Selection Changed事件中,读取该数据,创建要显示的表单(如果它不存在),然后使用show()显示它 这就像是一个典型的菜单程序。不确定这是否是您需要的,因为我不确定您是否希望在另一个预构建表单上显示数据或创建一个新表单,但现在开始。

出于好奇,是否可以在datagrid中基于行选择打开表单?我还需要表单来显示基于datagrid中用户名的信息。人员用户名包含在数据网格的行中。

您必须对其进行编码,但是的,这是可能的

首先,用您可以处理的数据填充DataGrid

在DataGrid的Selection Changed事件中,读取该数据,创建要显示的表单(如果它不存在),然后使用show()显示它


这就像是一个典型的菜单程序。

不确定这是否是您需要的,因为我不确定您是否希望在另一个预构建表单上显示数据或创建一个新表单,但现在开始。 这样,您甚至不必担心所选的行,假设您拥有绑定到datagrid的人员的用户名,您可以创建如下超链接列:

<asp:HyperLinkcolumn DataNavigateUrlField="Username" 
                     DataNavigateUrlFormatString="PersonForm.aspx?Username={0}"     
                     HeaderText="More Details" 
                     Text="View Person Details" />

添加链接后,您可以使用DataGridView1\u CellContentClick捕获链接,并对其执行所需操作,即打开新表单或更改当前表单。

您可以在以下事件下处理此问题

 dataGridView1_CellClick
获取datagridiview的
CurrentCell

根据您的要求检查
用户名是否存在,并显示相应的表单

示例代码:

if (this.dataGridView1.CurrentCell != null) 
{
    string strusrname=dataGridView1.CurrentCell.Value.ToString();
    //Here find out for the user name from the string as you get the currentcell value of the datagridview
    // Raise the corresponding form as per you required
} 

你是在问是否有一些“自动”的方法来做到这一点?或者如果可能的话?如果可能的话,我看了一下,在数据网格上没有找到太多信息。@JoeBell当你说打开一个包含详细信息的表单时,能不能简单到用所需人员的用户名链接到另一个页面,或者,您想在ItemCommand上捕获所选内容,然后对所选人员进行处理吗?@Joe Bell:您是在谈论Windows窗体还是ASP.NET web窗体?由于模棱两可,你得到的答案不一。我说的是windows窗体,而geepie正是我想做的(用用户名链接到另一个页面)。他要求的是Winforms而不是Webapplication@Dorababu是的,当问题仍然模糊时,第一个web应用程序部分最初就在那里。我刚刚在编辑中添加了windows.forms代码smaple和链接。当单击单元格的任何部分时,即使是边框和填充,都不会发生这种情况吗?您可能想使用DataGridView1\u CellContentClick。@Geppie:但因为我只有一个完全带有文本的单元格,所以我使用了这个,如果他有不同的单元格,那么可能会有所变化,然后他会按照您所说的去做
if (this.dataGridView1.CurrentCell != null) 
{
    string strusrname=dataGridView1.CurrentCell.Value.ToString();
    //Here find out for the user name from the string as you get the currentcell value of the datagridview
    // Raise the corresponding form as per you required
}