내 프로젝트에서 사용자 컨트롤을 만들고 프로젝트를 빌드 한 후 도구 상자에 넣고 공통 컨트롤로 사용해야합니다. 하지만 난 못해. 는 UserControl
내 프로젝트 네임 스페이스에, 나는 시도 Choose Item
마우스 오른쪽 버튼으로 클릭 메뉴에서,하지만 난 그것을 추가 할 수있는 방법을 찾지 못했습니다.
답변:
나는 당신이 VS2010을 사용하고 있다고 가정하고 있습니다. 실제로 도구 상자 자동 채우기를 중지하는 옵션이 있습니다!
도구> 옵션> Windows Forms 디자이너> 일반으로 이동합니다.
목록 맨 아래에 Toolbox> AutoToolboxPopulate가 있으며 새로 설치하면 기본값이 False로 설정됩니다. true로 설정 한 다음 솔루션을 다시 빌드하십시오.
솔루션의 사용자 컨트롤은 도구 상자에 자동으로 추가되어야합니다. 솔루션을 다시로드해야 할 수도 있습니다.
UserControl
현재 프로젝트 밖에있는 경우 @Arseny의 지시를 따라야 합니다.
도구 모음에서 마우스 오른쪽 버튼을 클릭 한 다음 상황에 맞는 메뉴에서 "항목 선택"을 클릭합니다. 등록 된 구성 요소가있는 대화 상자가 나타납니다. 이 대화 상자에서 "찾아보기"를 클릭하여 사용할 사용자 컨트롤이있는 어셈블리를 선택합니다.
추신. 이 어셈블리는 이전에 등록해야합니다.
사용자 정의 컨트롤에 매개 변수가없는 생성자가 있어야하며 그렇지 않으면 목록에 표시되지 않습니다. 적어도 그것은 vs2005에서 사실이었습니다.
VS 2010 사용 :
Windows.Forms 프로젝트가 있다고 가정 해 보겠습니다. 프로젝트에 UserControl (예 : MyControl)을 추가하고 모두 디자인합니다. 이제 도구 상자에 추가하려고합니다.
프로젝트가 성공적으로 빌드되면 프레임 워크 구성 요소에 나타납니다. 도구 상자를 마우스 오른쪽 단추로 클릭하여 상황에 맞는 메뉴를 표시하고 "항목 선택 ..."을 선택한 다음 ".NET Framework 구성 요소"탭에서 컨트롤 이름 (MyControl)을 찾습니다.
dll 사용에 비해 장점 : 양식과 동일한 프로젝트에서 컨트롤을 편집 할 수 있으며 양식은 새 컨트롤로 빌드됩니다. 그러나 제어는이 프로젝트에서만 가능합니다.
참고 : 컨트롤에 빌드 오류가있는 경우 포함 된 양식으로 이동하기 전에 오류를 해결하십시오. 그렇지 않으면 디자이너가 심장 마비를 겪고 있습니다.
많은 사용자 컨트롤이 있었지만 솔루션을 다시 빌드하고 항목 선택 ... 대화 상자 에서 확인 했지만 하나는 도구 상자 에 표시하지 않았습니다 .
해결책:
참고 이 또한 당신이 필요로 AutoToolboxPopulate의 옵션을 사용. @DaveF 답변에서 알 수 있듯이.
대체 솔루션 : 이것이 작동하는지 확실하지 않고 이미 내 문제를 해결했기 때문에 시도 할 수 없었지만 항목 선택 ... 대화 상자 에서 사용자 컨트롤을 선택 취소 한 경우 확인을 누른 다음 다시 열었습니다. 사용자 컨트롤을 확인했습니다. 그것도 작동 할 수 있습니다.
몇 가지 방법이 있습니다.
원래 프로젝트에서 File | Export template를
선택한 다음 ItemTemplate을 선택하고 마법사를 따릅니다.
UserControl을 별도의 ClassLibrary로 이동합니다 (및 네임 스페이스 수정 등).
필요한 프로젝트에서 클래스 라이브러리에 참조를 추가하십시오. GAC 또는 DLL 파일 만 신경 쓰지 마십시오.
UserControl을 일반 도구 상자에 넣는 것은 권장하지 않지만 수행 할 수 있습니다. @Arseny의 답변보기
기본 컨트롤에서 제네릭을 사용하는 경우 기본 질문. 경우 예:
제어권이 있다고 가정 해 보겠습니다.
public class MyComboDropDown : ComboDropDownComon<MyType>
{
public MyComboDropDown() { }
}
MyComboDropDown은 디자이너를 열 수 없으며 도구 상자에 표시되지 않습니다. 왜? 기본 컨트롤이 아직 컴파일되지 않았기 때문에-MyComboDropDown이 컴파일 될 때. 다음과 같이 수정할 수 있습니다.
public class MyComboDropDown : MyComboDropDownBase
{
public MyComboDropDown() { }
}
public class MyComboDropDownBase : ComboDropDownComon<MyType>
{
}
다시 빌드하고 도구 상자를 재설정 한 후 디자이너와 도구 상자에서 MyComboDropDown을 볼 수 있어야합니다.
내 디자이너의 문제는 32 비트 대 64 비트 문제였습니다. 64 비트 어셈블리 의 컨트롤을 도구 상자에 추가 할 수 없음 또는 Visual Studio IDE MS KB 내 디자이너에서 사용 문서 의 지침을 따른 후 도구 상자 에 컨트롤을 추가 할 수 있습니다 .
재 컴파일이 나를 위해 트릭을했습니다!