gpt4 book ai didi

c# - DataGrid Width 在 Windows Mobile 中没有影响。 C#

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:10 25 4
gpt4 key购买 nike

我是 Windows Mobile 开发的初学者,发现当我使用 DataGridTextBoxColumn 设置宽度时,它不会影响 DataGrid 列的大小。这是我的代码:

        DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = "MainStyle";

DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 120;
tbcName.MappingName = "Name";
tbcName.HeaderText = "Name";
tableStyle.GridColumnStyles.Add(tbcName);

DataGridTextBoxColumn tbcValue = new DataGridTextBoxColumn();
tbcValue.Width = 200;
tbcValue.MappingName = "Value";
tbcValue.HeaderText = "Value";
tableStyle.GridColumnStyles.Add(tbcValue);

// dgUserAttributes is defined as a System.Windows.Forms.DataGrid
dgUserAttributes.TableStyles.Clear();
dgUserAttributes.TableStyles.Add(tableStyle);

有什么想法吗?

最佳答案

作为Henk Holterman声明您必须将 DataGridTableStyle 映射到绑定(bind)到 DataGridDataTable 的名称。或者,您可以将每个 DataGridTextBoxColumnMappingName 设置为绑定(bind) DataTableDataColumn 的列名>.

假设您在表单设计器中将名为 dgUserAttributesDataGrid 添加到名为 Form1Form 中,您可以使用以下代码测试 DataGridTextBoxColumn width 属性如何更改显示的 DataGrid 中列的宽度。

另请检查您是否没有在设计时为 dgUserAttributesTableStyles 集合设置值,这可能会覆盖您以编程方式设置的值。

    public Form1()
{
InitializeComponent();

//Create In-Memory DataTable
DataTable myTable = new DataTable();

// Add DataColumns to the DataTable.
DataColumn myNameColumn = new DataColumn("Name");
myNameColumn.DataType = System.Type.GetType("System.String");
myNameColumn.DefaultValue = "default string";
myTable.Columns.Add(myNameColumn);
DataColumn myValueColumn = new DataColumn("Value");
myValueColumn.DataType = System.Type.GetType("System.String");
myValueColumn.DefaultValue = "default string";
myTable.Columns.Add(myValueColumn);

//Bind DataTable to dataGrid1
dgUserAttributes.DataSource = myTable;

DataGridTableStyle tableStyle = new DataGridTableStyle();
//tableStyle.MappingName = "MainStyle";
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 12;
tbcName.MappingName = "Name";
tbcName.HeaderText = "Name";
tableStyle.GridColumnStyles.Add(tbcName);
DataGridTextBoxColumn tbcValue = new DataGridTextBoxColumn();
tbcValue.Width = 300;
tbcValue.MappingName = "Value";
tbcValue.HeaderText = "Value";
tableStyle.GridColumnStyles.Add(tbcValue);
// dgUserAttributes is defined as a System.Windows.Forms.DataGrid
dgUserAttributes.TableStyles.Clear();
dgUserAttributes.TableStyles.Add(tableStyle);
}

关于c# - DataGrid Width 在 Windows Mobile 中没有影响。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com