欢迎光临
我们一直在努力

DataGrid使用技巧(一)——-如何屏蔽单元格输入-.NET教程,数据库应用

建站超值云服务器,限时71元/月

有时候听有些朋友抱怨.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))
           {
&nbsp;           messagebox.show(“不能输入数字,请重新输入”);
            ((datagridtextboxcolumn)this.datagrid1.tablestyles[0].gridcolumnstyles[1]).textbox.text=oldvalue;
            return;
            }
             index++;
        }
}
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » DataGrid使用技巧(一)——-如何屏蔽单元格输入-.NET教程,数据库应用
分享到: 更多 (0)

相关推荐

  • 暂无文章