Windows Mobile应用程序中的DataGrid的列宽(Motorola MC55)

时间:2016-08-02 13:28:40

标签: c# datagrid width windows-mobile

我尝试在C#中为将在Motorola MC55上运行的Windows Mobile应用程序调整DataGrid的列宽。

我使用以下代码执行此操作:

dataGrid1.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = t.TableName;
foreach (DataColumn item in t.Columns)
{
    DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
    tbcName.Width = 100;
    tbcName.MappingName = item.ColumnName;
    tbcName.HeaderText = item.ColumnName;
    tableStyle.GridColumnStyles.Add(tbcName);
 }
 dataGrid1.TableStyles.Add(tableStyle);

这在Windows Mobile 6.5.3上正常运行。专业模拟器。不幸的是,它不适用于摩托罗拉MC55。

在MC55上,与取消上面显示的代码时相比,列宽甚至更小。

你能帮我把这个用在MC55上吗?

1 个答案:

答案 0 :(得分:0)

我发现Motorola MC55的屏幕尺寸与仿真器的屏幕尺寸不同。因此,我添加/更改了以下行:

int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int columnWidth = (screenWidth / 3) - (screenWidth / 16);
// divided by 3 because of 3 columns
// divided by 16 was a good fit to display the scrollbar
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
//tbcName.Width = 100;
tbcName.Width = columnWidth;

无论如何,我不明白为什么问题只出现在这些列上。我总是习惯用绝对值来指定许多其他字段的大小。