C# Windows Mobile应用程序(摩托罗拉MC55)中数据网格的列宽

C# Windows Mobile应用程序(摩托罗拉MC55)中数据网格的列宽,c#,datagrid,width,windows-mobile,C#,Datagrid,Width,Windows Mobile,我试图用C#来调整运行在摩托罗拉MC55上的Windows Mobile应用程序的数据网格的列宽 我使用以下代码来执行此操作: dataGrid1.TableStyles.Clear(); DataGridTableStyle tableStyle = new DataGridTableStyle(); tableStyle.MappingName = t.TableName; foreach (DataColumn item in t.Columns) { DataGridTextBo

我试图用C#来调整运行在摩托罗拉MC55上的Windows Mobile应用程序的数据网格的列宽

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

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上工作吗?

我发现摩托罗拉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;

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

我发现摩托罗拉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;

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

显示的宽度也取决于屏幕分辨率。您可能有480x640设备屏幕,但具有192dpi或96dpi。像素不是像素。大多数CF项目设置为AutoScaleMode=dpi(每英寸点数)。显示的宽度也取决于屏幕分辨率。您可能有480x640设备屏幕,但具有192dpi或96dpi。像素不是像素。大多数CF项目设置为AutoScaleMode=dpi(每英寸点数)。