[英]Get name of actual used GUI Element (comboBox) to use in Method C# WinForms
我有一個方法可以從comboBoxes中刪除特殊項目。 首先,組合框充滿了數據庫中的表名,然后我要刪除列表中不需要的一些表名。 我可以通過同時填充和刪除所有組合框的項目來做到這一點。 但是現在我只希望我實際使用的beeing comboBox在Dropdown上被填充並且項目被刪除。 所以我想我需要獲取實際使用的comboBox的名稱,以將其用作變量或類似的東西。 我該怎么做呢?
到目前為止,這是我的代碼。 您會看到它非常長,僅用於添加和刪除comboBox的項目。
//Load DB Tables when Drop Down the Dropboxes. And remove not used/needed tables from Combobox.
private void referenzDropDown(object sender, EventArgs e)
{
string myInsertQuery = "SHOW TABLES";
MySqlCommand myCommand = new MySqlCommand(myInsertQuery, myConnection);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
comboBox18.Items.Clear();
comboBox19.Items.Clear();
comboBox20.Items.Clear();
comboBox21.Items.Clear();
comboBox22.Items.Clear();
comboBox23.Items.Clear();
comboBox24.Items.Clear();
comboBox25.Items.Clear();
comboBox26.Items.Clear();
if (myReader.HasRows == true)
{
while (myReader.Read())
{
comboBox18.Items.Add((string)myReader[0]);
comboBox19.Items.Add((string)myReader[0]);
comboBox20.Items.Add((string)myReader[0]);
comboBox21.Items.Add((string)myReader[0]);
comboBox22.Items.Add((string)myReader[0]);
comboBox23.Items.Add((string)myReader[0]);
comboBox24.Items.Add((string)myReader[0]);
comboBox25.Items.Add((string)myReader[0]);
comboBox26.Items.Add((string)myReader[0]);
}
myReader.Close();
}
comboBox18.Items.Remove("referenzen");
comboBox18.Items.Remove("waage1");
comboBox18.Items.Remove("waage2");
comboBox18.Items.Remove("waage3");
comboBox18.Items.Remove("waage4");
comboBox18.Items.Remove("waage5");
comboBox18.Items.Remove("waage6");
comboBox18.Items.Remove("waage7");
comboBox18.Items.Remove("waage8");
comboBox19.Items.Remove("referenzen");
comboBox19.Items.Remove("waage1");
comboBox19.Items.Remove("waage2");
comboBox19.Items.Remove("waage3");
comboBox19.Items.Remove("waage4");
comboBox19.Items.Remove("waage5");
comboBox19.Items.Remove("waage6");
comboBox19.Items.Remove("waage7");
comboBox19.Items.Remove("waage8");
comboBox20.Items.Remove("referenzen");
comboBox20.Items.Remove("waage1");
comboBox20.Items.Remove("waage2");
comboBox20.Items.Remove("waage3");
comboBox20.Items.Remove("waage4");
comboBox20.Items.Remove("waage5");
comboBox20.Items.Remove("waage6");
comboBox20.Items.Remove("waage7");
comboBox20.Items.Remove("waage8");
comboBox21.Items.Remove("referenzen");
comboBox21.Items.Remove("waage1");
comboBox21.Items.Remove("waage2");
comboBox21.Items.Remove("waage3");
comboBox21.Items.Remove("waage4");
comboBox21.Items.Remove("waage5");
comboBox21.Items.Remove("waage6");
comboBox21.Items.Remove("waage7");
comboBox21.Items.Remove("waage8");
comboBox22.Items.Remove("referenzen");
comboBox22.Items.Remove("waage1");
comboBox22.Items.Remove("waage2");
comboBox22.Items.Remove("waage3");
comboBox22.Items.Remove("waage4");
comboBox22.Items.Remove("waage5");
comboBox22.Items.Remove("waage6");
comboBox22.Items.Remove("waage7");
comboBox22.Items.Remove("waage8");
comboBox23.Items.Remove("referenzen");
comboBox23.Items.Remove("waage1");
comboBox23.Items.Remove("waage2");
comboBox23.Items.Remove("waage3");
comboBox23.Items.Remove("waage4");
comboBox23.Items.Remove("waage5");
comboBox23.Items.Remove("waage6");
comboBox23.Items.Remove("waage7");
comboBox23.Items.Remove("waage8");
comboBox24.Items.Remove("referenzen");
comboBox24.Items.Remove("waage1");
comboBox24.Items.Remove("waage2");
comboBox24.Items.Remove("waage3");
comboBox24.Items.Remove("waage4");
comboBox24.Items.Remove("waage5");
comboBox24.Items.Remove("waage6");
comboBox24.Items.Remove("waage7");
comboBox24.Items.Remove("waage8");
comboBox25.Items.Remove("referenzen");
comboBox25.Items.Remove("waage1");
comboBox25.Items.Remove("waage2");
comboBox25.Items.Remove("waage3");
comboBox25.Items.Remove("waage4");
comboBox25.Items.Remove("waage5");
comboBox25.Items.Remove("waage6");
comboBox25.Items.Remove("waage7");
comboBox25.Items.Remove("waage8");
comboBox26.Items.Remove("referenzen");
comboBox26.Items.Remove("waage1");
comboBox26.Items.Remove("waage2");
comboBox26.Items.Remove("waage3");
comboBox26.Items.Remove("waage4");
comboBox26.Items.Remove("waage5");
comboBox26.Items.Remove("waage6");
comboBox26.Items.Remove("waage7");
comboBox26.Items.Remove("waage8");
}
我認為應該是(偽代碼):
//Load DB Tables when Drop Down the Dropboxes. And remove not used/needed tables from Combobox.
private void referenzDropDown(object sender, EventArgs e)
{
string myInsertQuery = "SHOW TABLES";
MySqlCommand myCommand = new MySqlCommand(myInsertQuery, myConnection);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
ActualSelectedComboBox.Items.Clear();
if (myReader.HasRows == true)
{
while (myReader.Read())
{
ActualSelectedComboBox.Items.Add((string)myReader[0]);
}
myReader.Close();
}
ActualSelectedComboBox.Items.Remove("referenzen");
ActualSelectedComboBox.Items.Remove("waage1");
ActualSelectedComboBox.Items.Remove("waage2");
ActualSelectedComboBox.Items.Remove("waage3");
ActualSelectedComboBox.Items.Remove("waage4");
ActualSelectedComboBox.Items.Remove("waage5");
ActualSelectedComboBox.Items.Remove("waage6");
ActualSelectedComboBox.Items.Remove("waage7");
ActualSelectedComboBox.Items.Remove("waage8");
}
有人可以告訴我如何做到這一點嗎? 謝謝!
事件處理程序的sender
參數是使用的組合框。 您可以簡單地將其解析為ComboBox
:
private void referenzDropDown(object sender, EventArgs e)
{
string myInsertQuery = "SHOW TABLES";
MySqlCommand myCommand = new MySqlCommand(myInsertQuery, myConnection);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
// the "sender" is the control raising this event
// parse it to ComboBox
ComboBox actualSelectedComboBox = (ComboBox)sender;
actualSelectedComboBox.Items.Clear();
// ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.