求教:DataGrid自动调整列宽(程序修改)

amethystltt 2005-04-05 09:17:56
我有一个VB的例子,但是有几行不知道如何改成C#。求教:
numRows = CType(dataGrid1.DataSource, DT).Rows.Count;——CType如何实现

size = g.MeasureString(dataGrid1(i, col).ToString, dataGrid1.Font, 500, sf);——运行时说
“ComboBoxInDataGrid.AutoSizeControl.dataGrid1”表示“字段”,此处应为“方法”

dataGrid1.TableStyles("Students").GridColumnStyles(col).Width=CType(width,Integer);——“System.Windows.Forms.DataGrid.TableStyles”表示“属性”,此处应为“方法”
(其中的“Students"如果不是这么具体,应该写什么/)

我实在是看不懂。请大家帮忙解答一下。如果大家有详细的例子,也请贴上来给我看一下吧。谢谢。
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yosonlin 2005-04-06
  • 打赏
  • 举报
回复
在http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp
有许多有关datagrid的例子,当然也包括你要的自动调整的

nga96 2005-04-05
  • 打赏
  • 举报
回复
UP
bflovesnow 2005-04-05
  • 打赏
  • 举报
回复
numRows = (dataGrid1.DataSource as DT).Rows.Count;public void AutoSizeCol(int col)

{

float width = 0;

int numRows = ((DataTable) dataGrid1.DataSource).Rows.Count;



Graphics g = Graphics.FromHwnd(dataGrid1.Handle);

StringFormat sf = new StringFormat(StringFormat.GenericTypographic);

SizeF size;



for(int i = 0; i < numRows; ++ i)

{

size = g.MeasureString(dataGrid1[i, col].ToString(), dataGrid1.Font, 500, sf);

if(size.Width > width)

width = size.Width;

}



g.Dispose();



dataGrid1.TableStyles["数据源名称"].GridColumnStyles[col].Width = (int) width ;
}

看看 MSDN 中对 TableStyle 的详细介绍~~

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧