我有一個應用程序Windows窗體,其中我創建了動態控件,並且我需要像按鍵一樣的程序事件,但是我無法做到這一點,因爲一旦它們只存在於運行時就不會彼此認識。 (我」對不起:英語由谷歌Tradutor)使控件動態識別另一個
0
A
回答
0
這個問題似乎是,你是在本地創建的動態變量:
ComboBox c1 = new Combobox();
TextBox t1 = new TextBox();
更改jacqijvv的回答有點看起來更像什麼,我相信你正在努力實現。我還要假設您有彼此相關的多個文本框/組合框對,所以你可以將它們存儲在一個Dictionary對象在事件處理程序取回這些數據:
public partial class Form1 : Form
{
public Dictionary<TextBox, ComboBox> _relatedComboBoxes;
public Dictionary<ComboBox, TextBox> _relatedTextBoxes;
public Form1()
{
InitializeComponent();
_relatedComboBoxes = new Dictionary<TextBox, ComboBox>();
_relatedTextBoxes = new Dictionary<ComboBox, TextBox>();
TextBox textBox = new TextBox();
textBox.Text = "Button1";
textBox.KeyDown += textBox_KeyDown;
ComboBox comboBox = new ComboBox();
// todo: initialize combobox....
comboBox.SelectedIndexChanged += comboBox_SelectedIndexChanged;
// add our pair of controls to the Dictionaries so that we can later
// retrieve them together in the event handlers
_relatedComboBoxes.Add(textBox, comboBox);
_relatedTextBoxes.Add(comboBox, textBox);
// add to window
this.Controls.Add(comboBox);
this.Controls.Add(textBox);
}
void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox comboBox = sender as ComboBox;
TextBox textBox = _relatedTextBoxes[comboBox];
// todo: do work
}
void textBox_KeyDown(object sender, KeyEventArgs e)
{
TextBox textBox = sender as TextBox;
// find the related combobox
ComboBox comboBox = _relatedComboBoxes[textBox];
// todo: do your work
}
}
+0
感謝大家, 也許我無法解釋正確,但BradRem的迴應正是我想要的。非常感謝 – Aime 2012-03-12 14:58:26
0
你可以試試下面的代碼:
public partial class Form1 : Form
{
// Create an instance of the button
TextBox test = new TextBox();
public Form1()
{
InitializeComponent();
// Set button values
test.Text = "Button";
// Add the event handler
test.KeyPress += new KeyPressEventHandler(this.KeyPressEvent);
// Add the textbox to the form
this.Controls.Add(test);
}
// Keypress event
private void KeyPressEvent(object sender, KeyPressEventArgs e)
{
MessageBox.Show(test.Text);
}
}
這應該工作。
相關問題
- 1. Html文本控制(DIV不能識別另一個創建的動態??)
- 2. Python不識別另一個文件
- 3. Git:識別從另一個文件移動的行
- 4. 動態識別控件的容器(GroupBox等)
- 5. c#識別控件上的滾動條
- 6. 在用戶控件中動態創建的控件不被識別
- 7. 識別動態生成元件
- 8. 如何從一個手勢識別器到另一個手勢識別器
- 9. 如何唯一識別標籤控件?
- 10. 動態識別Jenkins版本
- 11. Do PictureBox控件具有除.Name之外的另一個屬性用於識別
- 12. 如何使用Windows Spy識別控件?
- 13. 動態添加大量的控件形成另一個線程
- 14. 如何在方法中添加動態控件另一個類?
- 15. 我如何動態地將WPF控件更改爲另一個?
- 16. CodedUI無法識別控件?
- 17. 未能識別ASP.NET控件
- 18. 幫助QTP識別控件
- 19. 無法識別MSAA控件
- 20. 用戶控件內插入另一個用戶控件插入動態
- 21. Javascript使一個組件動態地跟隨另一個
- 22. 如何從另一個活動中識別Tabhost選項卡ID
- 23. 將控件從一個aspx頁面複製到另一個頁面 - 動態移動控件 - ASP.Net
- 24. 動態插入另一個HTML文件?
- 25. 另一個滾動時動態滾動另一個元素
- 26. 動態另一個項目
- 27. Uploadcare使用動態加載的網址識別文件
- 28. 使用控制器的一個動作到另一個動作
- 29. 一個下推自動識別語言
- 30. Vuforia - 使用單個ObjectTarget實例進行動態對象識別
你是什麼意思相互認識?這些控件是否需要相互瞭解,還是僅僅是需要知道的控件?或者你只是試圖勾起事件?請在你創建它們的地方顯示你的代碼。 – 2012-03-09 19:28:11
我認爲他們真的需要了解彼此的原因C1控件事件會在C2中做些什麼(第二個控件) – Aime 2012-03-09 19:48:58
請發佈代碼以創建來自事件處理程序的控件和代碼。 – 2012-03-09 21:07:27