GridView单元格格式 [英] GridView Cell Format

查看:87
本文介绍了GridView单元格格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在gridview中,我希望很少的列只能接受数字0至9和小数点.并且很少有列应仅接受字母a到z.
我尝试了按键事件,但不起作用...

Hi, in gridview i want few columns should accept only numbers 0to9 and decimal point. and few columns should accept only letters a to z.
I tried with keypress event but not working...

推荐答案

< pre lang ="cs">私有无效dataGridView1_CellValueChanged(对象发送者,DataGridViewCellEventArgs e)
{
如果(e.RowIndex!= -1)
{
if(e.ColumnIndex == 0& amp; amp; dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value.ToString().Length& gt; 0)
{
正则表达式objAlphaPattern =新正则表达式(&"[[* a-zA-Z]& quot;));
如果(objAlphaPattern.IsMatch(dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value.ToString()))
{
}
其他
{
MessageBox.Show(& quot;仅字母值& quot;);
dataGridView1.Columns [e.ColumnIndex] .Selected = false;
dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value =&&";

}
}
否则if(e.ColumnIndex == 1& amp; dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value.ToString().Length& gt; 0)
{
十进制数;
如果(Decimal.TryParse(dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value.ToString(),输出编号)){
}
其他
{
MessageBox.Show(& quot;仅十进制值& quot;);
dataGridView1.Columns [e.ColumnIndex] .Selected = false;
dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value =&&";
}
}
}
}</pre>
<pre lang="cs">private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1)
{
if (e.ColumnIndex == 0 &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Length &gt; 0)
{
Regex objAlphaPattern = new Regex(&quot;[*a-zA-Z]&quot;);
if (objAlphaPattern.IsMatch(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()))
{
}
else
{
MessageBox.Show(&quot;Only Alphabet Value&quot;);
dataGridView1.Columns[e.ColumnIndex].Selected = false;
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = &quot;&quot;;

}
}
else if (e.ColumnIndex == 1 &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Length &gt; 0 )
{
decimal number;
if (Decimal.TryParse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out number)) {
}
else
{
MessageBox.Show(&quot;Only Decimal Value&quot;);
dataGridView1.Columns[e.ColumnIndex].Selected = false;
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = &quot;&quot;;
}
}
}
}</pre>


首先创建的gridview包含两列.一列用于字母/字母测试,另一列用于数字/十进制测试.创建两列后,您将在CellValueChanged事件中编写以下代码.

First you create gridview contain two columns .One for letters/alphaber test and another one is number/decimal test. After two columns created , you write following code in CellValueChanged event.

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex != -1)
            {
                if (e.ColumnIndex == 0 && dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Length > 0)
                {
                    Regex objAlphaPattern = new Regex("[*a-zA-Z]");
                    if (objAlphaPattern.IsMatch(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()))
                    {
                    }
                    else
                    {
                        MessageBox.Show("Only Alphabet Value");
                        dataGridView1.Columns[e.ColumnIndex].Selected = false;
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";

                    }
                }
                else if (e.ColumnIndex == 1 && dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Length > 0 )
                {
                    decimal number;
                    if (Decimal.TryParse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), out number)) {
                    }
                    else
                    {
                        MessageBox.Show("Only Decimal Value");
                        dataGridView1.Columns[e.ColumnIndex].Selected = false;
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
                    }
                }
            }
        }



然后您可以进行测试.

最好的问候

Theingi Win



And then you can test.

Best Regard

Theingi Win


这篇关于GridView单元格格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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