2016-09-14 2 views
-1

C#의 새로운 기능; VB.NET/VBA 개발자였습니다. 현재 오프 사이트 근로자를위한 신청서를 작성 중입니다. 프로젝트 번호의 드롭 다운이있는 기본 교환기 양식이 있습니다. 그런 다음 사용자는 다양한 양식 기반 도구를 열어 예산 양식을 포함 할 수 있습니다. 드롭 다운의 변화에 ​​따라, 나는 여러 속성 (고객, 위치 등)이있는 프로그램 범위의 클래스 변수 인 cJob을 저장합니다. 예산 양식의 개방에 :고유 변수가있는 WinForms 다중 인스턴스 양식

Form frm = new FieldBudgets.frmBudgets().Show(); 

나는 cJob의 개인 정적 인스턴스가 meJob (새 cJob)라고합니다. 배전반으로 돌아 가면 해당 예산 인스턴스를 닫지 않고 사용자는 다른 프로젝트 번호가 선택된 동일한 예산 양식의 추가 인스턴스를 열 수 있습니다. 새로 고침 버튼은 예산 양식의 데이터를 업데이트 할 수 있지만 마지막 인스턴스의 새로운 meJob 정보는 다른 인스턴스로 전달됩니다. 어떻게 분리 할 수 ​​있습니까? 나는 새로운 meJob이 개별 인스턴스를 고수 할 것이라고 생각했다.

제쳐두고, 숨겨진 텍스트 상자를 포함하고 새로 고침시 새로운 meJob을 다시로드하는 매력적인 "솔루션"이 있습니다. 그게 내가 얻는 가장 좋은 방법 인 경우, 그래서 당신은 frmBudgets의 생성자에 고유 필드 및/또는 속성을 넣을 수

MJ

+0

기본 양식 클래스 범위로 사전 을 만들고 클릭 한 버튼으로 키를 참조 할 수 있습니다. –

답변

-1
Dictionary<string,FieldBudgets.frmBudgets> myBudgets = new Dictionary<string,FieldBudgets.frmBudgets>(); 
myBudgets.Add("Budget1",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget2",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget3",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget4",New FieldBudgets.frmBudgets()); 

myBudgets["Budget2"].Show(); 

... 그 것이다.

+0

사전 (Google 학습)에 정통하지는 않지만이 조언을 따르지는 않습니다. frmBudgets의 meJob 인스턴스가 사전 항목으로 어떻게 변환됩니까? frmBudgets의 개별 인스턴스가 특정 ID를 "기억"하지 않는 이유는 무엇입니까? –

+0

사전은 한 번에 같은 개체의 여러 인스턴스를 열고 키 (문자열, int 또는 원하는 고유 항목이 될 수 있음)로 액세스 할 수있는 방법입니다. MyForm1, myForm2, myForm3 등을 만드는 것보다 쉽습니다. –

+0

좋아요, 사전 개념은 의미가 있습니다. 그러나 사전이 보유되어 호출 페이지에서 구현되는 경우 자체 내용임을 알고 사전 "페이지"와 관련되는 방법을 모릅니다. –