[英]C# pass a string on an onClick event of a button
好的,我不確定如何執行此操作,因為我試圖自學C#並同時創建一個工作程序。
我有一個IP地址列表:
List<IPAddress> addresses
一旦列表提交到表單,我就會動態為這些ip地址動態創建一組按鈕。
我想將與按鈕(IP地址)關聯的文本字符串傳遞給onclick事件。
Button b = new Button();
b.Text = "Router\n\r" + String.Format("{0}.{1}.{2}.126", ba[0], ba[1], ba[2]);
b.Dock = DockStyle.Fill;
b.Click += btnRouter_Click;
b.Size = new System.Drawing.Size(150, 50);
tlp.Controls.Add(b, 1, 0);
單擊該按鈕時,我希望它啟動命令行參數來調用putty.exe,並轉到動態創建此按鈕時傳遞的IP地址版本,即xxx126地址。
我現在的onClick存根是:
private void btnRouter_Click(Object sender, EventArgs e)
{
MessageBox.Show("You clicked the Router button!");
}
我想要的是這樣的:
private void btnRouter_Click(Object sender, EventArgs e)
{
myProcess.StartInfo.FileName = "Putty.exe";
myProcess.StartInfo.Arguments= "xxx.xxx.xx.126"
Process.Start(myProcess.StartInfo)
}
只有我不知道如何將該字符串傳遞給按鈕onclick事件,因為它不是由Object或EventArgs傳遞的。
作為快速解決方案,您可以
Button b = new Button();
...
b.Tag = "my string";
然后在事件處理程序中
private void btnRouter_Click(Object sender, EventArgs e)
{
MessageBox.Show((string)((Button)sender).Tag);
}
或者,按照@paqogomez的建議,您可以只使用Text
值而不使用Tag
(如果您不介意使用"Router\\n\\r"
作為前綴的地址:
private void btnRouter_Click(Object sender, EventArgs e)
{
MessageBox.Show((string)((Button)sender).Text);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.