GridView单元格格式 [英] GridView Cell Format
本文介绍了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 && 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 = "";
}
}
}
}</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屋!
查看全文