| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:发个帖子,大家看下。。DATAGRID
只看楼主 加入收藏
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
收藏
 问题点数:0 回复次数:4 
发个帖子,大家看下。。DATAGRID

在网上找了个例子,关于DataGrid的,这个地方发铁的特别多,个人也觉得蛮重要的。。。觉得还不错,贴出来和大家分享。摘自————cfans' Blog 。。希望能有所帮助。。



DataGrid使用技巧

-------如何屏蔽单元格输入

有时候听有些朋友抱怨.NET的DataGrid不是很好用。就我个人的体会,DataGrid的功能非常强大,可以使我们随心所欲的完成各种各样的工作,可惜就是实现起来不够简单明了。我对平时经常碰到的一些问题积累了一些解决的方法,现在把它们总结一下供大家参考。

比较经常碰到的一个问题是:我们希望DataGrid的某一列只能输入特定的文本,比如:不能输入数字。下面的例子说明如何实现这种功能。
新建一个Window应用程序,加入一个DataGrid和SqlConnection,连接SQL数据库NorthWind。

namespace WindowsApplication1
{
public class Form1 : System.Windows.Forms.Form
{
private myDataGrid dataGrid1;
private System.Data.SqlClient.SqlConnection sqlConnection1;
//加入全局变量oldValue,用它表示单元格原来的文本。
private string oldValue;

private void Form1_Load(object sender, System.EventArgs e)
{
oldValue="";
SqlDataAdapter sda=new SqlDataAdapter("select LastName,FirstName from employees",this.sqlConnection1);
DataSet ds=new DataSet();
sda.Fill(ds,"employees");
DataGridTableStyle ats=new DataGridTableStyle();
ats.MappingName="employees";
DataGridColorColumn dcs1=new DataGridColorColumn();
dcs1.HeaderText="lastname";
ats.GridColumnStyles.Add(dcs1);
DataGridTextBoxColumn dcs2=new DataGridTextBoxColumn();
dcs2.HeaderText="firstname";
dcs2.MappingName="FirstName";
dcs2.TextBox.TextChanged+=new EventHandler(DataGridTextChanged);
dcs2.TextBox.Enter+=new EventHandler(DataGridTextBox_Enter);
ats.GridColumnStyles.Add(dcs2);
this.dataGrid1.TableStyles.Add(ats);
this.dataGrid1.DataSource=ds;
this.dataGrid1.DataMember="employees";
}

private void DataGridTextBox_Enter(object sender,EventArgs e)
{
//当某一单元格获得焦点时,记录单元格的文本
oldValue=((DataGridTextBoxColumn) this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text;
}

private void DataGridTextChanged(object sender,EventArgs e)
{
int index=0;
string str=((DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text;
//当单元格的文本改变时,检验是否有非法字符
while(index<str.Length)
{
//如果发现数字,显示错误信息并将单元格还原为原内容
if (Char.IsDigit(str,index))
{
MessageBox.Show("不能输入数字,请重新输入");
((DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text=oldValue;
return;
}
index++;
}
}
}


搜索更多相关主题的帖子: DATAGRID 帖子 
2007-05-31 16:55
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
收藏
得分:0 

没人顶下啊??尴尬了。。呵呵。。自己顶下。。没功劳有苦劳的撒。呵呵


革命尚未成功,同志仍需努力-----+++
2007-05-31 18:02
shizhusz110
Rank: 1
等 级:新手上路
帖 子:307
专家分:0
注 册:2006-12-21
收藏
得分:0 
我来顶!!!对我可是大有好处的
写了
2007-05-31 19:54
残月寒沙
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-5-30
收藏
得分:0 
刚来,新人
正在学习中
!!!
2007-05-31 20:21
zyxhott
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-9
收藏
得分:0 

不错 !!
各位前辈 小弟在datagrid中不能显示日期和时间
请教各位前辈!!


2007-07-09 19:38
快速回复:发个帖子,大家看下。。DATAGRID
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027905 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved