Visual Studio の .NETCF Windows モバイル プロジェクトでカスタム (継承された) コントロールを表示する際に問題があります。コントロールは、クラス名が書かれた灰色のボックスとしてデザイナー画面に表示されます。
テストケースとして、次のように定義された単純なコントロールがあります。
public class ucButton2 : Button
{
}
ボタンのようにする必要がありますが、おかしな動作をします。
過去に、この問題または同様の問題を設計時属性ファイルで解決しました。そのため、次の内容のファイル DTA.xmta を含めました。
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
<Class Name="MyProject.CustomControls.ucButton2">
<Description>Testbutton</Description>
<DesktopCompatible>true</DesktopCompatible>
</Class>
</Classes>
ここで、事態は本当に奇妙になります。関連のない型指定されたデータ セット ファイルの genasm.exe からコンパイル エラーが発生し始めます。
この投稿の最後のコメントからのアドバイスに従ってください: http://www.simonrhart.com/2008/02/upgrading-your-solutions-to-visual.html
「埋め込みリソース」のビルド アクションを持つように DTA.xmta を変更しました。
これでアプリはコンパイルされますが、何も変更されていません。デザイナー サーフェイスには、クラス名の空のボックスが表示されたままです。
奇妙なキャッシュが発生していないことを確認するために、Visual Studio を閉じてから再度開きました。同じ動作です。
私が言ったように、過去に xmta ファイルはこの種の問題を解決しました。しかし、今回はそうではありませんでした。しかし同時に、以前は、xmta ファイルを追加しても、コンパイル時に genasm.exe が barf することはありませんでした。私の他のプロジェクトでは、私の xmta ファイルには、「埋め込みリソース」ではなく「なし」のビルド アクションがあります。
実行時には、すべて正常に動作します。これは純粋に設計時の問題です。どんな助けでも大歓迎です。