Я разработал элемент управления, в котором используется InputPanel
КПК для взаимодействия с пользователем. Соответствующая часть кода ниже:Compact Framework: не удалось использовать InputPanel в элементе управления
namespace MyNamespace
{
// ...
using Microsoft.WindowsCE.Forms;
// ...
public class MyControl
{
// ...
public InputPanel MyPanel { get; set; }
// ...
}
}
Всякий раз, когда я пытаюсь перетащить Control
в Form
, я получаю следующее сообщение об ошибке:
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’
Если удалить InputPanel
линию от MyControl
смогу добавьте его в Form
без проблем. Как только добавляется Control
, я могу снова добавить строку, и вся программа компилируется и работает нормально.
Как только форма с Control
просматривается в Дизайнере, она вылетает с аналогичной ошибкой, как указано выше, и я не могу добавить ее ни к одному другому Form
.
Я использую Visual Studio 2008 SP1 с SDK для Windows Mobile 6.
Так что мои вопросы: кто-нибудь испытал подобную проблему или нашел обходное решение?
EDIT: Остановился и использовал родительскую форму как собственность. Форма реализует IInputPanel, которая в основном является интерфейсом с getteran. Тем не менее ответ Ctake был очень проницательным и познакомил меня с XMTA.
Очевидно, DesktopCompatible был установлен в false для всех элементов управления, которые я сделал. Поэтому установка DesktopCompatible в false не решила проблему. – xsl
Вы вызываете CE-специфический код (например, пытаетесь показать SIP) в любом месте элемента управления, который будет выполнять дизайнер? Как показывать SIP во время активации или тому подобное? См. Мое редактирование выше. – ctacke
Я тоже несколько смущен вашим комментарием - вы говорите «по-видимому», как будто вы были удивлены или не знали. Файл XMTA должен быть создан вручную вами - Studio не делает этого для вас - так что вам, конечно же, придется настраивать. – ctacke