0

私たちのアプリは.net4.0をターゲットにしており、コードはvb.netとc#のプロジェクトを組み合わせたものです。この特定のプロジェクトはvb.netです。私の開発マシンは、vs2010sp1およびVS2010+Windows8x64VMWareマシンを搭載したWindows7x64proです。

Windows 7では、テーブルレイアウトパネルが設計時に正しく表示され、結果として実行可能なwinformsアプリケーションが表示されます。ただし、Wondows 8でアプリケーションを実行すると、TableLayoutPanelsの列の順序が混同されていることがわかりました。

スクリーンショットを添付しましたが、最初はWindows 8の動作と関係があると考え、Windows8で再コンパイルすると修正されることを期待していました。いいえ!Windows 8で同じソースファイルを開くと、添付のスクリーンショットのように、列が混ざっています。そのため、順序を修正してコンパイルし、Windows 8では正常に表示されますが、Windows 7に戻ると、列の順序が混同されています。

それで、ウィンドウ7または8のいずれかでそれを修正し、他の表示は正しくありませんか?

誰かが何か提案をすることができますか?マイクロソフトに回答をメールで送信して、すぐに修正されるとは限りません。

スクリーンショット

編集:私たちは本当にこれに固執しています、何かアイデア/提案はありますか?

Edit2:MSDNコミュニティサポートから、connect.microsoft.comで問題を解決するように言われました。これは私が行ったことですが、解決されるとは思っていません。したがって、このユーザーコントロールを別のものに置き換える必要があります。同様の問題がある他のユーザーコントロールが見つからないことを願っています。そうしないと、Windows8のサポートが完全に棚上げになります。バグとして受け入れられ、すぐには修正されないという理由でこれを閉じる予定です。

4

2 に答える 2

1

この問題を抱えている他の人のために。
connect.microsoftからの応答があります。これは、2013年1月8日のパッチリリース4.5で修正されました。


マイクロソフトが2013年1月17日17:52に投稿フィードバックありがとうございます。この問題を再現することができ、1月8日以降にWindowsUpdateで利用できる.NetFramework4.5の最近のリリースアップデートで修正されたことを確認しました。

多くのお客様は、Microsoftやコミュニティの他のメンバーが回避策を提案できるフォーラム(http://www.microsoft.com/communities/forums/default.mspx)でこのような問題について話し合うことが役立つと感じています。フィードバックをお待ちください。

ありがとう、Windowsフォームチーム

于 2013-01-18T09:03:21.017 に答える
1

–私の不完全な提案は、「自分でローリングする」ことです。おそらく、2つのバージョンのIDEが順序をスクランブリングしています。

上に示したすべてのテーブルレイアウトはコードで実行でき、Windows8とWindows7で見られる問題を回避できる可能性があります。これは http://social.msdn.microsoft.com/Forums/en/で見つけました。 vbgeneral / thread / 4e6bc84b-b465-4bee-9316-c0ee68d9fa20

Dim tlp As New 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 に答える