可以添加一个新的类,从System.Windows.Forms.dataGrid继承,然后添加一个方法比如SetBind(),在这个方法里显示一个模式窗口,在这个窗口里对字段设置好,然后关闭窗体再对当前的类进行设置,大致如下所示:private void SetBind(DataSet ds)
{
int[] colWidth = {100, 200, 300, 100}; //各列宽度
string[] colMap = {"code", "ID_Card", "Name", "Address"}; //各列名称
string[] colName = {"编号", "身份证编号", "姓名", "住址"}; frmSetBind f = new frmSetBind();
f.ShowDialog(this); colWidth = f.ColWidth;//这里的ColWidth等属性在frmSetBind的界面里设置好.
colMap = f.ColMap;
colName = f.ColName; DataGridTableStyle myGridStyle = new DataGridTableStyle();
myGridStyle.MappingName = ds.Tables[0].TableName; for (int i= 0; i<colWidth.Length - 1;i++)
{
DataGridTextBoxColumn nameColumnStyle = new DataGridTextBoxColumn();
nameColumnStyle.MappingName = colMap[i];
nameColumnStyle.Width = colWidth[i];
nameColumnStyle.NullText = "";
nameColumnStyle.HeaderText = colName[i];
myGridStyle.GridColumnStyles.Add(nameColumnStyle);
}
//清除DataGrid样式
this.dataGrid1.TableStyles.Clear();
//给DataGrid添加新样式
this.dataGrid1.TableStyles.Add(myGridStyle);
this.dataGrid1.DataSource = ds.Tables[0];
}

解决方案 »

  1.   

    谢谢,不过我好像有些地方没有说明白,我希望这个控件的这个属性是在设计页面的时候出现的,就像我们在一个窗口中拖放一个DataGrid后,我们可以在开发环境中的属性窗口中点击TableStyles然后弹出一个对话框,对其属性进行设置一样,我希望这个控件也可以实现这样的功能
      

  2.   

    如何在开发环境的PropertyGrid中编辑属性值时弹出窗口?查看下面类或者接口的帮助
    EditorAtrribute
    UITypeEditor
    IWindowsFormsEditorService
      

  3.   

    这里有例子
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemwindowsformsdesigniwindowsformseditorserviceclasstopic.htm
      

  4.   

    在线MSDN中找找看,有这方面的介绍吧!没做过,帮你顶下!
      

  5.   

    这个是IWindowsFormsEditorService的在线帮助,里面有例子http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsdesigniwindowsformseditorserviceclasstopic.asp