就是禁止在DataGrid中添加新行,删除已有的行。
数据表是根据设备定制的,只允许用户改表中的某些数据,不允许用户自己添加新行和删除已有的行;但是对于管理员可以添加删除行,由程序的另一部分实现。
这样说明白了吗

解决方案 »

  1.   

    不明白,你没有特别设置的情况下,grid是完全开放的可以自由删除和添加嘛?
      

  2.   

    现在就是两个模块,管理员那部分已搞定。
    但用户这部分用DataGrid来显示数据,我没有写insert、delete的SQL语句,可是整个表显示出来后,用户依旧可以在DataGrid中的子表删除行或加入新行,实际上对数据库的数据他是改不了的,只是看起来他好像改了一样,因为他在DataGrid中实现了。
    我问的就是,怎样在DataGrid中不给他这种操作的机会,怎样在DataGrid中禁止添加新行和删除已有的行。
      

  3.   

    我觉得你可以在DataGrid上做文章
      

  4.   

    其实就是怎样特别设置grid,使其不完全开放,不可以自由删除和添加,但是可以修改已有的数据行。
      

  5.   

    怎么特别设置这个Grid呢?
    对表B使用Row_progeditcenter_Changing,当DataRowAction.Add时,可以RejectChanges;但是当Delete的时候,就没有Row_progeditcenter_Changing事件,怎么办?
      

  6.   

    MM是我话我就自己写组件,继承改了它的属性。
    但是当Delete的时候,就没有Row_progeditcenter_Changing事件,怎么办?
    自己写一个。
      

  7.   

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

  8.   

    DataGrid.ReadOnly 属性  [C#]请参见
    DataGrid 类 | DataGrid 成员 | System.Windows.Forms 命名空间 | DataColumn.ReadOnly | DataGrid 成员(Visual J# 语法) | C++ 托管扩展编程 
    要求
    平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列
    语言
    C#C++JScriptVisual Basic全部显示
    获取或设置一个指示网格是否处于只读模式的值。[Visual Basic]
    Public Property ReadOnly As Boolean[C#]
    public bool ReadOnly {get; set;}[C++]
    public: __property bool get_ReadOnly();
    public: __property void set_ReadOnly(bool);[JScript]
    public function get ReadOnly() : Boolean;
    public function set ReadOnly(Boolean);属性值
    如果网格处于只读模式,则为 true;否则为 false。默认为 false。备注
    在只读模式下,可以滚动网格、展开或折叠节点以及进行其他操作。但是,不能进行添加、编辑或删除操作。DataGridColumnStyle 还有 ReadOnly 属性,可以针对每一列将该属性设置为真以防止编辑数据。如果要禁止用户直接在 System.Windows.Forms.DataGrid 中编辑数据,可将 ReadOnly 设置为真。例如,您可能希望允许用户查看表中的所有列,但只允许他们通过另一个窗体上的 TextBox 控件来编辑特定字段。
      

  9.   

    对于父表的禁止已经做好了,关键是子表。
    在DataGrid中,当通过Ralation导航到子表的时候,就又可以删除行了。
    我的问题其实就是在导航到子表的时候,禁止用户添加新行和删除行的语句怎么写?
      

  10.   

    private void Position_Changed(object sender, EventArgs e)
    {
    // Print the Position property value when it changes.
    ((DataView)cm1.List).AllowNew=false;
    }
      

  11.   

    每次父表Position_Changed,重新设置子表((DataView)cm1.List).AllowNew=false;
      

  12.   

    使用 DataGrid 控件的 TableStyles 属性就可以完成此功能。
    具体怎么做看一下帮助就会了。
      

  13.   

    谢谢各位GGJJDDMM,问题已经解决,解决方案如 _goto(1905年:相对论)所说,谢谢大家!
      

  14.   

    this.dataGrid1.Column[i].AllowUpDate = true;