出于好奇,是否可以根据数据网格中的行选择打开表单?我还需要表单来显示基于datagrid中的用户名的信息。人员用户名包含在数据网格的行中。
答案 0 :(得分:4)
你必须对此进行编码,但是,有可能。
首先,使用您可以处理的数据填充DataGrid。
在DataGrid的Selection Changed事件中,读取该数据,创建要显示的表单(如果它尚不存在),并使用Show()显示它。
这就像一个典型的菜单程序。
答案 1 :(得分:2)
您可以在以下事件
下处理此问题 dataGridView1_CellClick
获取datagridiview的CurrentCell
值
根据您的要求检查username
是否存在,并显示相应的表格
示例代码:
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
}
答案 2 :(得分:0)
不确定这是不是你的追求,因为如果你想在另一个预建表单上显示数据或者创建一个新数据,我不会不这样做,但是这里就是这样。 这样你甚至不用担心选择的行,假设你有绑定到datagrid的人的用户名,你可以创建一个像这样的超链接列:
<asp:HyperLinkcolumn DataNavigateUrlField="Username"
DataNavigateUrlFormatString="PersonForm.aspx?Username={0}"
HeaderText="More Details"
Text="View Person Details" />
然后PersonForm可以加载人员详细信息。或者,如果您想获得有关如何捕获itemcommand上所选行的帮助,请告诉我。
希望这有帮助。
在winforms标签更新后编辑,您可能会对此感兴趣:DataGridViewLink On MSDN
一般代码是:
DataGridViewLinkColumn links = new DataGridViewLinkColumn();
links.UseColumnTextForLinkValue = true;
links.HeaderText = ColumnName.ReportsTo.ToString();
links.DataPropertyName = //Set your field here.
links.ActiveLinkColor = Color.White;
links.LinkBehavior = LinkBehavior.SystemDefault;
links.LinkColor = Color.Blue;
links.TrackVisitedState = true;
links.VisitedLinkColor = Color.YellowGreen;
DataGridView1.Columns.Add(links);
添加链接后,您可以使用DataGridView1_CellContentClick捕获它并使用它执行您想要的操作,即打开新表单或更改当前表单。