呵呵, 这个问题我早就问过了. 没人告诉我解决方案, 好像有人成功过的, 但是没告诉我:(
他称重载Paint, 你试试看.

解决方案 »

  1.   

    你重载System.Windows.Forms.DataGridTextBoxColumn,我就是这样做的在paint方法里
    string s = this.GetColumnValueAtRow(source, rowNum).ToString();
    SizeF sz=g.MeasureString(s,parent.Font,bounds.Width);这样算出了这各字符串所所占的面积,然后根据bounds的大小居中向里面画就行了
      

  2.   

    To jcaomao(草帽) 
    你能给解释一下paint方法吗?或者告诉我哪里可以看到相关资料?谢谢!!在paint方法里
    string s = this.GetColumnValueAtRow(source, rowNum).ToString();
    SizeF sz=g.MeasureString(s,parent.Font,bounds.Width);其中source 是什么?SizeF 是什么类型?bounds又是什么?
      

  3.   

    设置列宽
    <asp:BoundColumn DataField="Area" HeaderText="Area"> <HeaderStyle Width="50px"></HeaderStyle>
    </asp:BoundColumn>
      

  4.   

    jcaomao(草帽) 说的很正确!我就是这么做的
      

  5.   

    是不是因为你输入的字符是"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"这样的
    如果是这样,那DataGrid是不会换行的,他认为是一个单词,如果是"wwwwwwww wwwwwwww wwwwwwwww wwww www ww ww www ww  ww"这样应该会自己换行的~~~
      

  6.   

    To: lsfyfan(Jackfan) 
    就是继承System.Windows.Forms.DataGridTextBoxColumn类,重载paint方法啊,这不用再详细说了吧?自已动手试试比别人把代码贴给你不是更好。
      

  7.   

    楼上几位,我用的是DataSet绑定的,不是用System.Windows.Forms.DataGridTextBoxColumn类的属性来贴数据的。