私は、テーブルに関連付けられたFieldNames(別のチェックリストボックス)を表示するためにチェックリストボックスを使用しています。複数のチェックリストボックスが動的に生成され、このアイテムのいずれかをチェックするとイベント「OnCheckListBoxItemCheck」が発生します。ここでチェックされている現在の項目はオブジェクト '送信者'から取得されます。疑問は、動的チェックリストボックスからチェックされたアイテムとclbtablesからチェックされたアイテムをどのように関連付けることができるのでしょうか?助けてください...2つのチェックリストボックスアイテムをリンクするには?
private void clbTables_ItemCheck(object sender, ItemCheckEventArgs e)
{
int indexofselectedtable;
indexofselectedtable = Convert.ToInt32(clbTables.SelectedIndex);
Metadata metadataobj = new Metadata(dbProperties);
List<string> ColumnNames = new List<string>();
ColumnNames = metadataobj.GetColumns(clbTables.Items[indexofselectedtable].ToString());
chklistcolumns = new CheckedListBox();
//Adds to the Checked ListBox
for (int j = 0; j < ColumnNames.Count; j++)
{
chklistcolumns.Items.Add(ColumnNames.ElementAt(j).ToString());
}
this.Controls.Add(chklistcolumns);
//To fire event for a dynamically generated column checklistboxes
chklistcolumns.ItemCheck += new ItemCheckEventHandler(OnCheckListBoxItemCheck);
}
private void OnCheckListBoxItemCheck(object sender, ItemCheckEventArgs args)
{
Columns columnobj = new Columns();
columnobj.ColumnName = this.chklistcolumns.SelectedItem.ToString();
columnobj.TableName = this.clbTables.SelectedItem.ToString();
selectedColumnsList.Add(columnobj);
}
また、1つのリスト内の複数のチェックボックスがオンになっているとどうなりますか? – Bazzz
私はthis.chklistcolumnsを使用しているので、1つのリスト内の複数のチェックボックスでうまく動作します...イベントを発生させるオブジェクトの列名を認識するにはどうすればいいですか?私はchklistcolumnsの名前をテーブルの選択された項目に変更します。それをオブジェクトの送信者から取得する方法はありますか? – NewBie
'Control cnt =((CheckBox)sender).Parent'? – Achilleterzo