DataGridTextBoxColumn dataGridTextBoxColumn1;
dataGridTextBoxColumn1.width=宽度;
dataGridTextBoxColumn1.Alignment=Right;

解决方案 »

  1.   

    /// <summary>
    /// 设置所有列的最佳宽度.
    /// </summary>
    public void SetToFitWidth(string TableName)
    {
    DataGridColumnStyle dgcs;
    for(int i =0 ; i < this.TableStyles[TableName ].GridColumnStyles; i ++ )
    {
    dgcs.Width =GetFitWidth(i,dgcs.HeaderText,0 );
    }
    }
    /// <summary>
    /// 返回指定列的最适合宽度,记录范围是表格(DataGrid)中的所有行
    /// </summary>
    /// <param name="pColumn">一个列</param>
    /// <param name="headerCaption">列的标题字符,如果不计算标题字符的宽度,则传入空字符</param>
    /// <param name="MaxLimit">最宽限制为,缺省为1000</param>
    /// <returns>列的最适合宽度</returns>
    public int GetFitWidth(int col,string headerCaption ,int MaxLimit) 

    float width = 0; 
    if (MaxLimit==0) MaxLimit=1000;
    int numRows = this.GetRowsCount ();
    Graphics g = Graphics.FromHwnd(this.Handle); 
    StringFormat sf = new StringFormat(StringFormat.GenericTypographic); 
    SizeF stringSize =  g.MeasureString(headerCaption, Font,MaxLimit); width=stringSize.Width ;
    for(int i = 0; i < numRows; ++ i) 

    stringSize = g.MeasureString(this[i, col].ToString(), this.Font, MaxLimit, sf); 
    if(stringSize.Width > width) 
    width = stringSize.Width; 

    g.Dispose(); 
    return  (int) width + 8; // 8 is for leading and trailing padding 
    }
      

  2.   

    private SqlConnection mycnn=null;
           private DataSet myds=null;private SqlDataAdapter myda=null;
    private DataGridTableStyle myts=null;
         mycnn=new SqlConnection(@"server=zhurongj;database=学生管理数据库;uid=dazhu2;pwd=32012");
    try
    {
    mycnn.Open();

    //myda=new SqlDataAdapter("select * from 学生情况表 where substring(姓名,1,1)='朱'",mycnn); myda=new SqlDataAdapter("select * from 学生情况表",mycnn);
                     myda.TableMappings.Add("table","info");
    myda.TableMappings["table"].ColumnMappings.Add("姓名","name");
                  
    // fill data in dataset
         myds=new DataSet();
    myda.Fill(myds,"table");

    //close database
    mycnn.Close(); DataTable mytable=myds.Tables["info"];
    this.dataGrid1.SetDataBinding(myds,"info");
    // create tablestyle
        myts= new DataGridTableStyle(true);
                  //set mapping
    myts.MappingName=myds.Tables[0].TableName;

    //clear datagridtablestyle
    this.dataGrid1.TableStyles.Clear();

    //add datagridtablestyle
    this.dataGrid1.TableStyles.Add(myts);
    //将第一列宽度设置隐藏
    myts.GridColumnStyles["学号"].Width=0;


      

  3.   

    myts.GridColumnStyles["学号"].Width=0;
    会不会按Tab的时候,突然光标不见了? 会不会给用户在列头用鼠标又给拉出来了?上面的问题我没试过不知道,但下面的隐藏就不会
    myts.GridColumnStyles["学号"].MappingName=""