0

我们的应用程序面向 .net4.0,代码是 vb.net 和 c# 项目的混合。这个特定的项目是 vb.net。我的开发机器是带有 vs 2010 sp1 的 windows 7x64 pro 和 VS2010 + Windows 8x64 VMWare 机器。

在 Windows 7 中,我们的 tablelayoutpanel 在设计时正确显示以及生成的可执行 winforms 应用程序。然而,在 Wondows 8 中运行我们的应用程序,我们看到 TableLayoutPanels 中的列顺序是混淆的。

我附上了一个截图,现在起初我们只是认为它与 Windows 8 的工作方式有关,并希望在 Windows 8 中重新编译可以修复它。没有!在 Windows 8 中打开相同的源文件显示按照附加的屏幕截图,混合列。所以我们修复了排序,编译并且在 Windows 8 中它显示得很好,但是在 Windows 7 中,我们再次得到了混合的列顺序。

那么在 Windows 7 或 8 中修复它而其他显示不正确?

任何人都可以提供任何建议吗?它不像我们可以通过电子邮件向 Microsoft 寻求答案并期望很快得到修复。

截屏

编辑:我们真的坚持这一点,有什么想法/建议吗?

Edit2:MSDN 社区支持告诉我通过 connect.microsoft.com 提出它,我已经这样做了,但我不希望它永远得到解决。所以我将不得不用其他东西替换这个用户控件,并希望我找不到其他有类似问题的用户控件,否则 Windows 8 支持将被永久搁置。将在它被接受为错误并且不会很快修复的基础上关闭它。

4

2 回答 2

1

对于其他有此问题的人。
我收到了来自 connect.microsoft 的回复,它已在 2013 年 1 月 8 日的 4.5 补丁版本中修复。


Microsoft 于 2013 年 1 月 17 日 17:52 发表 感谢您的反馈。我们能够重现此问题,并确认它已在最近发布的 .Net Framework 4.5 更新中得到修复,该更新于 1 月 8 日开始在 Windows 更新中可用。

许多客户发现在论坛 (http://www.microsoft.com/communities/forums/default.mspx) 中讨论此类问题很有用,Microsoft 和社区的其他成员可以在这些论坛中建议解决方法。请保持反馈。

谢谢, Windows 窗体团队

于 2013-01-18T09:03:21.017 回答
1

– 我的蹩脚建议是尝试“滚动你自己的”——也许 ide 的两个版本正在打乱顺序。

您在上面显示的所有表格布局都可以使用代码完成,这可能会避免您在 windows 8 和 windows 7 上看到的问题我在 http://social.msdn.microsoft.com/Forums/en/找到了这个vbgeneral/线程/4e6bc84b-b465-4bee-9316-c0ee68d9fa20

暗淡 tlp 作为新的 TableLayoutPanel
tlp.ColumnCount = 3
tlp.RowCount = 5
tlp.AutoSize = True

    Dim labels(4) As Label  
    For i As Byte = 0 To 4  
        labels(i) = New Label  
        labels(i).Text = "Label number " & i  
        tlp.Controls.Add(labels(i), 0, i)  
    Next i  

    Dim comboboxes(4) As ComboBox  
    For i As Byte = 0 To 4  
        comboboxes(i) = New ComboBox  
        comboboxes(i).Items.AddRange _  
        (New String() {"first item", "second item", "item number 3"})  
        tlp.Controls.Add(comboboxes(i), 1, i)  
    Next i  

    Dim firstRowButton As New Button  
    firstRowButton.Text = "New button!" 

    tlp.Controls.Add(firstRowButton, 2, 0)  

    Dim thirdRowTextBox As New TextBox  
    tlp.Controls.Add(thirdRowTextBox, 2, 2)  

    Me.Controls.Add(tlp) 

祝你好运

于 2013-01-09T04:12:26.670 回答