【问题标题】:Set cell width of a Datagrid in a c# windows application在 c# windows 应用程序中设置 Datagrid 的单元格宽度
【发布时间】:2011-01-11 14:33:54
【问题描述】:

我的 c# windows 应用程序中有一个数据网格,我的代码是

private void BindGrid(SmsPdu pdu)
 {
   DataRow dr=dt.NewRow();
   SmsDeliverPdu data = (SmsDeliverPdu)pdu;
   dr[0]=data.OriginatingAddress.ToString();
   dr[1]=data.SCTimestamp.ToString();
   dr[2]=data.UserDataText;
   dt.Rows.Add(dr);
   dataGrid1.DataSource=dt;
  }

我的数据网格看起来像这样 alt text http://www.freeimagehosting.net/uploads/c368f82e0e.jpg

  • 如何设置所有三列的宽度 发件人、时间、消息?

【问题讨论】:

  • 我已经修改了答案以包含一些代码。把你的评论贴在下面让我知道,如果它有用。

标签: c# winforms datagrid width


【解决方案1】:

datagrid1.Columns[0].Width怎么样?

查看this 类。它有一个可以设置的宽度属性。

编辑:看看这个page。并查看AddGridStyle 下的代码,它显示了如何创建映射并设置每个列的样式、宽度等。

希望对您有所帮助。

EDIT2:我正在编写没有编译器的以下代码(仅使用反射器和 MSDN 来查看文档)。所以,请善待

DataGridTableStyle tableStyle = dataGrid1.TableStyles[0];
GridColumnStylesCollection colStyles = tableStyle.GridColumnStyles[0];

DataGridColumnStyle styleForCol1 = colStyles[0];
styleForCol1.Width = 165;

DataGridColumnStyle styleForCol2 = colStyles[1];
styleForCol1.Width = 125;

代码来源于我从Remarksthis页面了解的内容,引用如下

System.Windows.Forms..::.DataGrid 控件自动创建一个 DataGridColumnStyle 的集合 当您设置对象时 DataSource 属性到适当的 数据源。创建的对象 实际上是其中之一的实例 以下类继承自 数据网格列样式: DataGridBoolColumn 或 DataGridTextBoxColumn 类。

【讨论】:

    【解决方案2】:

    简单的方法:使用自动调整大小

    否则,使用 Columns 集合来设置每列的大小

    附录:

    抱歉,我假设您使用的是 DataGridView,因为它取代了 .NET 2.0 中的 DataGrid

    对于 DataGrid,它有点复杂 - 但谷歌知道一切!

    http://www.syncfusion.com/faq/windowsforms/search/1004.aspx

    【讨论】:

    • @[Pandiya Chendur]:见附录
    • @[Pandiya Chendur]:编辑您的问题以发布您尝试过的内容,我会看看我能做些什么。 DataGridView 不是一个选项吗?它比 DataGrid 更容易使用...
    【解决方案3】:

    Columns 集合上有一个 Width 属性:

    DataGridView1.Columns(X).Width = Y

    其中 X 是列的名称或索引,Y 是宽度

    【讨论】:

    • @rip 它是数据网格而不是数据网格视图
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    相关资源
    最近更新 更多