在datagridview中比较2个不同的列 [英] Compare 2 different columns in the datagridview

查看:147
本文介绍了在datagridview中比较2个不同的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 datagridview 中,四列1& 2只读3和3 4获得数值。我想比较第4列必须大于第3列。
例如:

In my datagridview, four columns 1 & 2 are read only col 3 & 4 got number values. I want to compare that 4th column must be greater that 3rd column. For example:

如果第4列值小于第3列,那么我想提出的消息不会导航到另一个控件。

If the 4th column value is less than the 3rd column then I want to propose message doesn't navigate to another control.

我的简单方法似乎没有工作。如何比较这种条件的两个特定列?

My simple approach seems not working. How can I compare 2 specific columns for this kind of condition?

private void datagridview_CellValidating(object sender, CellValidatingEventArgs e)
{
    try
    {
        int bbor = datagridview.CurrentCell.ColumnIndex;
        int ebor = datagridview.CurrentCell.RowIndex;
        if (ebor <= bbor)
        {
            MessageBox.Show("Please verify the value");
            e.Cancel = true;
        }
    }
    catch (Exception exception)
    {
    }
}


推荐答案

我们再见面。使用cell_click事件:

we meet again. Use the cell_click event:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex != 0)
    {
        if (Double.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) <= Double.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString()))
        {
            MessageBox.Show("Please verify the value");
        }
    }
}

编辑1:

EDIT 1: This seems to work fine, lemme know.

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    if (e.ColumnIndex != 0)
    {
        if (Double.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()) <= Double.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString()))
        {
            MessageBox.Show("Please verify the value");
            e.Cancel = true;
        }
    }
}

编辑2:更新为Telerik控件

private void radGridView1_CellValidating(object sender, Telerik.WinControls.UI.CellValidatingEventArgs e)
    {
        if (e.ColumnIndex != 0)
        {
            if (e.Value != null && radGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value != null)
            {
                if (Double.Parse(e.Value.ToString()) <= Double.Parse(radGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString()))
                {
                    MessageBox.Show("error");
                    e.Cancel = true;                        
                }
            }
        }
    }

img src =https://i.stack.imgur.com/i79VF.pngalt =在此输入图像说明>

这篇关于在datagridview中比较2个不同的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆