C# - Add button click events using code(C# - 使用代码添加按钮单击事件)
问题描述
我在 C# 和编程方面的经验几乎为零,所以你可能会觉得我的问题很愚蠢.但是,我尝试使用代码创建一个 Windows 窗体,并且我已经成功实现了我想要的.但现在我想为我的所有按钮添加按钮点击事件.我希望 addToDay[i] 清除 exerciseBox[i]、setBox[i] 和 repBox[i] 中的文本.谢谢.
I have almost 0 experience with C# and programming overall, so you might find my question stupid. However, Im trying to create a Windows Form using code and I've succeeded with what I've wanted. But now I would like to add button click events to all my buttons. I want addToDay[i] to clear text in exerciseBox[i], setBox[i] and repBox[i]. Thanks.
public NewSchedule2(string path)
{
InitializeComponent();
this.SuspendLayout();
labels = new System.Windows.Forms.Label[7];
exercises = new System.Windows.Forms.TextBox[7];
sets = new System.Windows.Forms.TextBox[7];
reps = new System.Windows.Forms.TextBox[7];
addToDay = new System.Windows.Forms.Button[7];
string[] lines = File.ReadAllLines(path);
for (int i = 0; i < 7; i++)
{
this.labels[i] = new System.Windows.Forms.Label();
this.labels[i].Location = new System.Drawing.Point(40, 40 + i * 50);
this.labels[i].Name = "Label" + i;
this.labels[i].Size = new System.Drawing.Size(110, 20);
this.labels[i].Text = lines[i];
this.Controls.Add(this.labels[i]);
if (lines[i] == "Restday")
{
}
else
{
this.exercises[i] = new System.Windows.Forms.TextBox();
this.exercises[i].Location = new System.Drawing.Point(160, 40 + i * 50);
this.exercises[i].Name = "excersiceBox" + i;
this.exercises[i].Size = new System.Drawing.Size(110, 20);
this.exercises[i].Text = "";
this.Controls.Add(this.exercises[i]);
this.sets[i] = new System.Windows.Forms.TextBox();
this.sets[i].Location = new System.Drawing.Point(290, 40 + i * 50);
this.sets[i].Name = "setBox" + i;
this.sets[i].Size = new System.Drawing.Size(40, 20);
this.sets[i].Text = "";
this.Controls.Add(this.sets[i]);
this.reps[i] = new System.Windows.Forms.TextBox();
this.reps[i].Location = new System.Drawing.Point(350, 40 + i * 50);
this.reps[i].Name = "repBox" + i;
this.reps[i].Size = new System.Drawing.Size(40, 20);
this.reps[i].Text = "";
this.Controls.Add(this.reps[i]);
this.addToDay[i] = new System.Windows.Forms.Button();
this.addToDay[i].Location = new System.Drawing.Point(430, 40 + i * 50);
this.addToDay[i].Name = "addToDay" + i;
this.addToDay[i].Click += new System.EventHandler(this.button_Clicked);
this.addToDay[i].Size = new System.Drawing.Size(80, 20);
this.addToDay[i].Text = "Add To " + lines[i];
this.Controls.Add(this.addToDay[i]);
}
}
}
private void button_Clicked(object sender, EventArgs e)
{
}
}
推荐答案
这是一个示例,您可以使用这些示例来完成此任务.祝你学习愉快:)
Here is it a sample of what you could use in order to accomplish that. I wish you an happy learning :)
public NewSchedule2(string path)
{
InitializeComponent();
this.SuspendLayout();
labels = new System.Windows.Forms.Label[7];
exercises = new System.Windows.Forms.TextBox[7];
sets = new System.Windows.Forms.TextBox[7];
reps = new System.Windows.Forms.TextBox[7];
addToDay = new System.Windows.Forms.Button[7];
string[] lines = File.ReadAllLines(path);
for (int i = 0; i < 7; i++)
{
this.labels[i] = new System.Windows.Forms.Label();
this.labels[i].Location = new System.Drawing.Point(40, 40 + i * 50);
this.labels[i].Name = "Label" + i;
this.labels[i].Size = new System.Drawing.Size(110, 20);
this.labels[i].Text = lines[i];
this.Controls.Add(this.labels[i]);
if (lines[i] == "Restday")
{
}
else
{
this.exercises[i] = new System.Windows.Forms.TextBox();
this.exercises[i].Location = new System.Drawing.Point(160, 40 + i * 50);
this.exercises[i].Name = "excersiceBox" + i;
this.exercises[i].Size = new System.Drawing.Size(110, 20);
this.exercises[i].Text = "";
this.Controls.Add(this.exercises[i]);
this.sets[i] = new System.Windows.Forms.TextBox();
this.sets[i].Location = new System.Drawing.Point(290, 40 + i * 50);
this.sets[i].Name = "setBox" + i;
this.sets[i].Size = new System.Drawing.Size(40, 20);
this.sets[i].Text = "";
this.Controls.Add(this.sets[i]);
this.reps[i] = new System.Windows.Forms.TextBox();
this.reps[i].Location = new System.Drawing.Point(350, 40 + i * 50);
this.reps[i].Name = "repBox" + i;
this.reps[i].Size = new System.Drawing.Size(40, 20);
this.reps[i].Text = "";
this.Controls.Add(this.reps[i]);
this.addToDay[i] = new System.Windows.Forms.Button();
this.addToDay[i].Location = new System.Drawing.Point(430, 40 + i * 50);
this.addToDay[i].Name = "addToDay" + i;
this.addToDay[i].Click += new System.EventHandler(this.button_Clicked);
this.addToDay[i].Size = new System.Drawing.Size(80, 20);
this.addToDay[i].Text = "Add To " + lines[i];
this.addToDay[i].Click += new System.EventHandler(this.button_Clicked);
this.Controls.Add(this.addToDay[i]);
}
}
}
private void button_Clicked(object sender, EventArgs e)
{
Button triggeredButton = (Button) sender;
var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*[ _]?)(?<Numeric>[0-9]*)");
var match = numAlpha.Match(triggeredButton.Name);
var num = match.Groups["Numeric"].Value;
this.exercises[num].Text = string.Empty;
this.sets[num].Text = string.Empty;
this.reps[num].Text = string.Empty;
}
这篇关于C# - 使用代码添加按钮单击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C# - 使用代码添加按钮单击事件


- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- 使用 rss + c# 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01