获得datagridview选中的对象名称
文档:获得datagridview选中的对象名称.note
链接:http://note.youdao.com/noteshare?id=6ea2590fc806dcc9f3e8f72517ff2462&sub=3C9E67AF71964C22ACE38F923B7831F7
获取选中的项的文本,有2种方式
1 正向复制 从上向下复制黑3角最终在下方,
2 反向复制 从下往上复制 黑3角最终在上方,
这两种复制的最终结果的顺序是不一样的,1是反的,2才是正的,我希望正向复制的结果是从上往下排列的
i总是从0开始的 ,假设选中了5个项 则 i的索引为 0 1 2 3 4
结果刚好反掉了(从1到5 这样选中的 注意黑三角在5的左边)
dgv1.SelectedRows[0].Cells["单词"].Value=what
dgv1.SelectedRows[1].Cells["单词"].Value=take sth.over
dgv1.SelectedRows[2].Cells["单词"].Value=back down
dgv1.SelectedRows[3].Cells["单词"].Value=as
dgv1.SelectedRows[4].Cells["单词"].Value=article
反过来选 先选5再选1 结果才是正确的(注意黑三角在1的左边)
dgv1.SelectedRows[0].Cells["单词"].Value=article
dgv1.SelectedRows[1].Cells["单词"].Value=as
dgv1.SelectedRows[2].Cells["单词"].Value=back down
dgv1.SelectedRows[3].Cells["单词"].Value=take sth.over
dgv1.SelectedRows[4].Cells["单词"].Value=what
代码
private void button2_Click(object sender,EventArgs e) { int selCount = dgv1.SelectedRows.Count; string[] arr = new string[selCount]; for (int i = 0; i < dgv1.SelectedRows.Count; i++) { arr[i] = $" dgv1.SelectedRows[{i}].Cells[\"单词\"].Value=" + dgv1.SelectedRows[i].Cells["单词"].Value.ToString(); } MessageBox.Show(string.Join("\n",arr)); }
我希望从上往下选的结果是 反过来选的结果
这样只用把.SelectedRows[i] 的索引倒过来变成 4 3 2 1 0
注意黑三角在5的左边
dgv1.SelectedRows[4].Cells["单词"].Value=article
dgv1.SelectedRows[3].Cells["单词"].Value=as
dgv1.SelectedRows[2].Cells["单词"].Value=back down
dgv1.SelectedRows[1].Cells["单词"].Value=take sth.over
dgv1.SelectedRows[0].Cells["单词"].Value=what
private void button2_Click(object sender,EventArgs e) { int selCount = dgv1.SelectedRows.Count; string[] arr = new string[selCount]; for (int i = selCount - 1; i > -1; i--) { int x = selCount - 1 - i; arr[i] = $" dgv1.SelectedRows[{x}].Cells[\"单词\"].Value=" + dgv1.SelectedRows[x].Cells["单词"].Value.ToString(); } MessageBox.Show(string.Join("\n",arr)); }
2020年12月31日 15:58:55
下面是发现
注意结果:从上往下选的 三角形是4 说明是从1开始选的 4结束的,
得到的结果刚好反了
string s = ""; foreach (DataGridViewRow item in dgv1.SelectedRows) { s += item.Cells["单词"].Value.ToString() + "\n"; }
倒着选 从4开始 1结束 这样结果是正确的