私はPDAのInputPanel
を使ってユーザーと対話するコントロールを開発しました。コードの関連部分は以下の通りです:Compact Framework:コントロールでInputPanelを使用できません
namespace MyNamespace
{
// ...
using Microsoft.WindowsCE.Forms;
// ...
public class MyControl
{
// ...
public InputPanel MyPanel { get; set; }
// ...
}
}
私はForm
にControl
をドラッグしようとするたびに、私は次のエラーを取得する:
System.IO.FileNotFoundException: Could not load file or assembly ‘Microsoft.WindowsCE.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=969db8053d3322ac’ or one of its dependencies. The system cannot find the file specified. File name: ‘Microsoft.WindowsCE.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac’
私は私ができるMyControl
からInputPanel
行を削除する場合Form
に問題なく追加してください。 Control
が追加されたら、私は再び行を追加することができ、プログラム全体がコンパイルされて正常に動作します。
Control
のフォームをデザイナで表示すると、上記と同様のエラーでクラッシュし、もう一度他のForm
に追加することはできません。
私はWindows Mobile 6 SDKと共にVisual Studio 2008 SP1を使用しています。
私の質問は次のようなものです:誰かが同様の問題を経験したか回避策を見つけましたか?
EDIT:親フォームをプロパティとして取得して使用しました。フォームは基本的にInputPanelゲッターとのインターフェースであるIInputPanelを実装します。それにもかかわらず、ctakeの答えは本当に洞察力があり、私をXMTAに紹介しました。
明らかに、DesktopCompatibleは、私が作成したすべてのコントロールに対してfalseに設定されていました。したがって、DesktopCompatibleをfalseに設定しても問題は解決しませんでした。 – xsl
デザイナーが実行するコントロールのどこにでも、CE固有のコード(SIPを表示しようとするようなもの)を呼び出していますか?活性化中にSIPを表示するなど上記の私の編集を参照してください。 – ctacke
私はまたあなたのコメントで多少混乱しています - あなたは驚いたか、知らなかったように、「明らかに」言っています。 XMTAファイルは手動で作成する必要があります - Studioはそれをあなたのためにしません - それは確かにあなたが設定する必要があるでしょう。 – ctacke