Csharpsss 2018-06-14 03:50 采纳率: 50%
浏览 1310
已采纳

datagridview提示重复 怎么让光标跳回到重复的单元格 并且不修改进入下一单元格 仍会跳回

图片说明

 foreach (DataGridViewRow v in dataGridView1.Rows)  //判断第一列是否重复
            {
                if (v.Cells[0].Value != null)
                {
                    var count = 0;
                    foreach (DataGridViewRow v2 in dataGridView1.Rows)
                    {
                        if (v2.Cells[0].Value != null)
                        {
                            if (v.Cells[0].Value.ToString().Equals(v2.Cells[0].Value.ToString()))
                                count++;
                        }
                    }
                    if (count > 1)
                    {
                        MessageBox.Show("第1列有重复,重复的内容是:【" + v.Cells[0].Value + "】");

                        return;
                    }
                }
            }
  • 写回答

2条回答 默认 最新

  • 斯洛文尼亚旅游 2018-06-14 05:39
    关注
    
                foreach (DataGridViewRow v in dataGridView1.Rows)  //判断第一列是否重复
                {
                    if (v.Cells[0].Value != null)
                    {
                        var count = 0;
                        DataGridViewRow dgvr = null;//////////
                        foreach (DataGridViewRow v2 in dataGridView1.Rows)
                        {
                            if (v2.Cells[0].Value != null && v != v2)
                            {
                                if (v.Cells[0].Value.ToString().Equals(v2.Cells[0].Value.ToString()))
                                {
                                    count++;
                                    dgvr = v2.Cells[0];
                                    break;
                                }
                            }
                        }
                        if (count > 1)
                        {
                            MessageBox.Show("第1列有重复,重复的内容是:【" + v.Cells[0].Value + "】");
                            System.Timers.Timer t = new System.Timers.Timer(100);
                            t.Elapsed += (tsender, te) =>
                            {
                                t.Dispose();
                                this.Invoke(new setState(() =>
                                {
    
                                    dataGridView1.CurrentCell = dgvr;///////////////////
                                    dataGridView1.BeginEdit(true);
                                }));
                            };
                            t.Enabled = true;
                            return;
                        }
                    }
                }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?