PDA의 InputPanel
을 사용하여 사용자와 상호 작용하는 컨트롤을 개발했습니다. 코드의 관련 부분은 다음과 같습니다 :Compact Framework : 컨트롤에서 InputPanel을 사용하지 못했습니다.
namespace MyNamespace
{
// ...
using Microsoft.WindowsCE.Forms;
// ...
public class MyControl
{
// ...
public InputPanel MyPanel { get; set; }
// ...
}
}
이 때마다 나는 Form
에 Control
를 드래그하려고, 나는 다음과 같은 오류 얻을 : 나는 MyControl
내가 할 수에서 InputPanel
라인을 제거하면
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’
을 Form
에 아무 문제없이 추가하십시오. 일단 Control
이 추가되면 나는 그 라인을 다시 추가 할 수 있고 전체 프로그램은 컴파일되고 잘 동작한다.
디자이너에서 Control
의 양식을 보자 마자 위와 유사한 오류가 발생하여 충돌이 발생하고 다른 Form
에 다시 추가 할 수 없습니다.
Windows Mobile 6 SDK와 함께 Visual Studio 2008 SP1을 사용하고 있습니다.
제 질문은 다음과 같습니다. 유사한 문제가 발생했거나 해결 방법을 찾았습니까?
편집 : 부모 양식을 포기하고 속성으로 사용했습니다. 이 폼은 기본적으로 InputPanel getter와의 인터페이스 인 IInputPanel을 구현합니다. 그럼에도 불구하고 ctake의 답변은 정말 통찰력이 있었고 나를 XMTA에 소개했습니다.
분명히 DesktopCompatible이 내가 만든 모든 컨트롤에 대해 false로 설정되었습니다. 따라서 DesktopCompatible을 false로 설정해도 문제가 해결되지 않았습니다. – xsl
디자이너가 실행할 컨트롤의 어느 곳에서나 CE 관련 코드 (예 : SIP 표시)를 호출하고 있습니까? 정품 인증 중 SIP 표시 같은? 위의 편집을 참조하십시오. – ctacke
나는 또한 당신의 코멘트에 다소 혼란 스럽습니다. 당신이 놀랐거나 모른 것처럼 "분명히"말합니다. XMTA 파일은 수동으로 생성해야합니다. Studio는 사용자를 대신하지 않으므로 설정해야 할 사항입니다. – ctacke