• 获得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("
    ",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("
    ",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() + " "; }

    clipboard

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

  • 相关阅读:
    如何将网格式报表打印成其它样式
    拥有与实力不相称的脾气是种灾难——北漂18年(23)
    8.8.1 Optimizing Queries with EXPLAIN
    mysql 没有rowid 怎么实现根据rowid回表呢?
    secondary index
    8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
    mysql 中key 指的是索引
    8.5.4 Optimizing InnoDB Redo Logging 优化InnoDB Redo 日志
    8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务
    8.5.1 Optimizing Storage Layout for InnoDB Tables InnoDB表的存储布局优化
  • 原文地址:https://www.cnblogs.com/xe2011/p/14217401.html
Copyright © 2020-2023  润新知