[ad_1]
您好,需要帮助获取从 datagridview 到文本框的值,我有一个 datagridview 从 SQL 获取数据,它计算 4 列和从 sql 检索的行数,我有 4 个文本框,我希望 datagridview 选定行的列值到文本框。
请就此提出建议。
解决方案1
您可能想要回复 DataGridView.SelectionChanged 事件[^]。
在其处理程序中检查是否已选择单行,然后从该行获取值并将它们放入文本框中。
private void DataGridView1_SelectionChanged(object sender, EventArgs e) { if( DataGridView1.SelectedRows.Count = 0 ) { TextBox1.Value = DataGridView1.SelectedRows(0).Cells(0).Value; TextBox2.Value = DataGridView1.SelectedRows(0).Cells(1).Value; TextBox3.Value = DataGridView1.SelectedRows(0).Cells(2).Value; TextBox4.Value = DataGridView1.SelectedRows(0).Cells(3).Value; } }
该代码尚未经过测试,可能包含拼写错误。
确保 DataGridView.SelectionMode 属性[^] 被设定为 FullRowSelect
为了这个工作。
您可以使用 DataGridView.MultiSelect 属性[^] 以确保一次只选择一行。
解决方案3
你好,现在一切正常
private void dgviewSearch_CellcontentClick(object sender, DataGridViewCellEventArgs e) { int i; i = dgViewSearch.SelectedCells[0].RowIndex; textBox3.Text = dgViewSearch.Rows[i].Cells[1].Value.ToString(); textBox4.Text = dgViewSearch.Rows[i].Cells[3].Value.ToString(); }
非常感谢您的帮助,我期待在 datagridview 上对带有 ,(逗号) 的文本框进行多重选择,例如 (2001,2002,2003)
解决方案2
注册网格的MouseClick事件并使用以下代码。
private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { DataGridViewRow dr = dataGridView1.SelectedRows[0]; textBox1.Text = dr.Cells[0].Value.ToString(); // or simply use column name instead of index //dr.Cells["id"].Value.ToString(); textBox2.Text = dr.Cells[1].Value.ToString(); textBox3.Text = dr.Cells[2].Value.ToString(); textBox4.Text = dr.Cells[3].Value.ToString(); }
并在加载事件中添加以下行
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
解决方案8
私人无效dgvAllUsers_CellContentClick(对象发送者,DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow 行 = this.dgvAllUsers.Rows[e.RowIndex];
textId.Text = row.Cells[“idUser”].Value.ToString();
textFullName.Text = row.Cells[“FullName”].Value.ToString();
文本用户名.文本 = 行.单元格[“UserName”].Value.ToString();
文本密码.文本 = 行.单元格[“Password”].Value.ToString();
文本地址.文本 = 行.单元格[“Address”].Value.ToString();
textGender.Text = row.Cells[“Gender”].Value.ToString();
文本联系人编号.文本 = 行.单元格[“ContactNumber”].Value.ToString();
ComboUserType.SelectedText = row.Cells[“UserType”].Value.ToString();
}
}
解决方案9
始终使用 GridView1_CellEnt 事件,因为如果您使用箭头键移动单元格或使用鼠标单击,这对两者都有用。
并始终使用 if (dataGridView1.SelectedCells.Count > 0) 否则您必须选择完整的行。
私有无效dataGridView1_CellEnter(对象发送者,DataGridViewCellEventArgs e)
{
if (dataGridView1.SelectedCells.Count > 0) // 确保用户至少选择 1 行
{
DataGridToTextboxes(e.RowIndex);
}
}
私有无效DataGridToTextboxes(int x)
{
字符串 Item1 = dataGridView1.Rows[x]。细胞[1].值+字符串.空;
// 字符串 SrNo = selectedRows.Cells[0].值+字符串.空;
// 字符串 Item1 = selectedRows.Cells[1].值+字符串.空;
字符串 MinRange = dataGridView1.Rows[x]。细胞[2].值+字符串.空;
字符串 MaxRange = dataGridView1.Rows[x]。细胞[3].值+字符串.空;
字符串 MinStable = dataGridView1.Rows[x]。细胞[4].值+字符串.空;
字符串 MaxStable = dataGridView1.Rows[x]。细胞[5].值+字符串.空;
txtItem.Text = 项目1;
TextMinRange.Text = MinRange;
TextMaxRange.Text = MaxRange;
TextMinStable.Text = MinStable;
TextMaxStable.Text = MaxStable;
}
[ad_2]
コメント