当datagrid的readonly属性为false时,为datagrid添加数据源后,其会在数据的最后一行后面自动添加一个显示为null的行,
请教,如何不显示这个空行(readonly属性为false时)???????
并且不能新增行(通过键盘鼠标等)?????readonly属性为false时,即使将datagridtextboxcolumn.textbox.enabled设为false,有些列还是可以通过键盘修改显示值,只不过当焦点离开的时候还会自动改为原值,不知道这是什么原因?(有的列不可以修改,有的列可以修改)
请教,如何使所有datagridtextboxcolumn.textbox.enabled设为false的列都不能修改??????
谢谢

解决方案 »

  1.   

    程序写起烦得很,你在VS里面设置
    在DataGrid的属性里面找到TableStyles ,新增一个DataGridTableStyles,再在右边找到GridClumnStyles,这里面新增dataGridTextBoxColumn就可以设置了
    nullText表示默认的显示字符,你开始看到的,每个都是null的就是这个,你可以输个空格,这样就看不到null了,你要的ReadOnly也在这里设置
      

  2.   

    谢谢楼上的但是我问的不是那个意思!!我的意思不是不显示null,而是根本就不显示那一行,也就是说只显示实际有的行???
    关于readonly,不是不知道如何设置,而是发现设置之后有些列还是可以编辑,只不过当焦点离开的时候还会恢复原来的值
      

  3.   

    直接设置数据源
    this.dataGrid1 .DataSource=ds.Tables [0];
    ds.Tables [0].DefaultView .AllowNew =false;
      

  4.   


    请教,如何使所有datagridtextboxcolumn.textbox.enabled设为false的列都不能修改??????-----
    回答你这个问题:
    dataGrid1.DataSource=table;DataGridTableStyle ts=new DataGridTableStyle();
    DataGridTextBoxColumn tc=new DataGridTextBoxColumn();
    tc.MappingName="id";
    tc.ReadOnly=true;
    ts.GridColumnStyles.Add(tc);
    dataGrid1.TableStyles.Add(ts);tc=new DataGridTextBoxColumn();
    tc.MappingName="name";
    tc.ReadOnly=true;
    ts.GridColumnStyles.Add(tc);
    dataGrid1.TableStyles.Add(ts);
      

  5.   

    谢谢,将readonly设为true的方法我是知道的,也许我的表述有问题
    关键是第一个问题
      

  6.   

    this.dataGrid1 .DataSource=ds.Tables [0];
    ds.Tables [0].DefaultView .AllowNew =false;