Не удается отобразить настраиваемые элементы управления в VS 2008 Designer .NETCF

У меня проблемы с отображением настраиваемых (унаследованных) элементов управления в моем мобильном проекте .NETCF для Windows в Visual Studio. Элемент управления отображается на поверхности конструктора в виде серого поля с написанным в нем именем класса.

В качестве тестового примера у меня есть простой элемент управления, определенный как:

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 во время компиляции. В другом моем проекте мой файл xmta имеет действие сборки «none», а не «встроенный ресурс».

Во время выполнения все работает нормально. Это чисто временная проблема проектирования. Любая помощь приветствуется.


person Clyde    schedule 27.05.2009    source источник
comment
вместо добавления файла XMTA я создаю диаграмму классов (щелкните правой кнопкой мыши в проекте в обозревателе решений и нажмите кнопку просмотра диаграммы классов), после этого щелкните класс, в котором нужно добавить настраиваемые атрибуты; в окнах свойств щелкните поле [...], в котором отобразятся настраиваемые атрибуты для UcControl, например: DesktopCompatible (true) или DesignTimeVisible (true), Description (описание uc), ToolboxBitmap (namespace.ucControl). У меня нет однородных результатов, иногда дизайнер виден.   -  person antonio    schedule 29.11.2017


Ответы (2)


Я бы сказал, что вы добавляете DesktopCompatible (true) в качестве настраиваемого атрибута к элементу управления. См. этот пост

person Peter    schedule 16.06.2011
comment
ссылка пропала. Ссылка не связана с настраиваемым атрибутом - person antonio; 26.05.2021

Это связано с тем, что конструктор элементов управления интеллектуального устройства не поддерживает визуальное наследование - или, я бы сказал, он не отображает его в полной мере. Из-за дефекта кода или из-за конструкции он не работает как конструктор элементов управления .NET для настольных компьютеров. Иногда он отображает это, иногда нет.

Но ваш настраиваемый код управления по-прежнему будет работать, просто он не всегда отображается так, как ожидалось.

person Community    schedule 13.11.2009