동적 checklistbox에서 이벤트를 실행하는 동안 checklistbox의 checkeditem을 전달해야합니다. 코드 스 니펫은 주석과 함께 아래에 제공됩니다 ... 동일한 코드 조각에 문제가 있습니다. 마우스 더블 클릭 이벤트에서 그것의 예외를 던지는 IndexoutofRange. 그것의 인덱스 값 0. 잘 도와주세요 2 날 둘 다 해결하는 데 도움이됩니다.이벤트를 실행하는 동안 텍스트를 전달하는 방법은 무엇입니까?
private void clbTables_MouseDoubleClick(object sender, MouseEventArgs e)
{
int indexofselectedtable;
indexofselectedtable = Convert.ToInt32(clbTables.SelectedIndex);
if (clbTables.CheckedItems.Count != 0)
{
Metadata metadataobj = new Metadata(dbProperties);
DBList = metadataobj.GetColumns(clbTables.CheckedItems[indexofselectedtable].ToString()); // This throws an error on checking an item of index>0.
for (int j = 0; j < DBList.Count; j++)
{
chklistcolumns.Name = "chklist" + j++;
chklistcolumns.Items.Add(DBList.ElementAt(j));
}
this.Controls.Add(chklistcolumns);
chklistcolumns.ItemCheck += new ItemCheckEventHandler(OnCheckListBoxItemCheck);
}
}
private void OnCheckListBoxItemCheck(object sender, ItemCheckEventArgs args) //need to pass the tablename which can be got from the object clbTables
{
Columns columnobj = new Columns();
columnobj.ColumnName = this.Text;
columnobj.Id = this.Name;
columnobj.TableName= // need to get the tablename from the object clbtables
}
clbTables.CheckedItems -이 속성에서 반환하는 개체 유형입니다. checklistbox에서 여러 항목을 검사 할 수 있습니까? 그렇지 않은 경우 목록 길이는 항상 1입니다. 즉, 인덱스 0 만 유효한 조회입니다. 아마도 SelectedIndex에 의해 키 입력 할 필요가 없습니다. – Gishu
clbTables.CheckedItems는 목록을 반환합니다. 때로는 하나 이상의 요소를 확인할 수 있습니다. 심지어 같은 코드를 사용하여 6 개의 항목을 선택했습니다. 그러나 중간에 Indexoutofbound 예외가 발생합니다. – NewBie