C#의 flowlayoutpanel 안에있는 체크 박스의 값을 업데이트하려고합니다. 확인란은 생성되고 "selected1"이라는 각 패널에 대해 생성됩니다.흐름 레이아웃 패널에서 확인란 값에 액세스하는 방법은 무엇입니까?
: 나는라는 오류 CheckBox의 객체를 생성하고 값으로 Name 속성을 얻고 얻기 위해 내가 노력했습니다flowLayoutPanel2.Controls[e.Index].Controls["selected1"]
사용하고 시도하고 코드의 특정 체크 박스에 액세스하려면
System.NullReferenceException: Object reference not set to an instance of an object.
내가 사용하는 코드는 다음과 같습니다
try
{
System.Windows.Forms.Control checkBox = new System.Windows.Forms.Control();
checkBox = flowLayoutPanel2.Controls[e.Index].Controls["selected1"];
MessageBox.Show(Convert.ToString(checkBox.Name));
}
catch (Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
내가 아마 수표를 액세스를 시도하는 것 같아 상자를 잘못된 방향으로 둘러싼 것처럼, 패널에 액세스하려고하는 것처럼 아무 문제없이 패널을 조작 할 수 있습니다.
감사합니다, 샘
이 코드는 어떤 메소드입니까? 확인란의 click 이벤트 핸들러? e (인덱스)가 어디서 오는가? – Eddy
동일한 데이터를 표시하는 목록보기의 이벤트 핸들러에 있습니다. 지금은 해당 목록보기 확인란을 업데이트하는 흐름 레이아웃 패널의 확인란이 있지만 역순으로 수행하려고 애 쓰고 있습니다. e는 목록보기 확인란입니다. e.Index는 색인이며 같은 순서 인 동일한 번호가 매겨진 패널입니다. –
아래 질문에 답을 한 Q가 아니지만 "= 새로운"부분은 필요 없습니다. 다음 줄에 변수를 다시 지정하므로 사용되지 않는 컨트롤이 만들어집니다. 또한 checkBox.Name은 문자열이므로 Convert.ToString()도 필요하지 않습니다. – Eddy