获得datagridview选中的对象名称

文档:获得datagridview选中的对象名称.note
链接:http://note.youdao.com/noteshare?id=6ea2590fc806dcc9f3e8f72517ff2462&sub=3C9E67AF71964C22ACE38F923B7831F7


获取选中的项的文本,有2种方式

1 正向复制 从上向下复制黑3角最终在下方,

2 反向复制 从下往上复制 黑3角最终在上方,

这两种复制的最终结果的顺序是不一样的,1是反的,2才是正的,我希望正向复制的结果是从上往下排列的


clipboard

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

clipboard

反过来选 先选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的左边

clipboard

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

下面是发现

clipboard

注意结果:从上往下选的 三角形是4 说明是从1开始选的 4结束的,

得到的结果刚好反了

clipboard

string s = ""; foreach (DataGridViewRow item in dgv1.SelectedRows) { s += item.Cells["单词"].Value.ToString() + "\n"; }

clipboard

倒着选 从4开始 1结束 这样结果是正确的

posted @   XE2011  阅读(386)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示