Awa*_*ken 5 .net c# controls winforms
不确定说出这个的最好方法是什么,但我想知道是否可以在C#(3.5)中完成动态变量名访问.
这是我目前正在寻找"智能化"或通过循环使其更优雅的代码.
private void frmFilter_Load(object sender, EventArgs e)
{
chkCategory1.Text = categories[0];
chkCategory2.Text = categories[1];
chkCategory3.Text = categories[2];
chkCategory4.Text = categories[3];
chkCategory5.Text = categories[4];
chkCategory6.Text = categories[5];
chkCategory7.Text = categories[6];
chkCategory8.Text = categories[7];
chkCategory9.Text = categories[8];
chkCategory10.Text = categories[9];
chkCategory11.Text = categories[10];
chkCategory12.Text = categories[11];
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做某事("chkCategory"+ i.ToString()).文字?
是的,你可以使用
Control c = this.Controls.Find("chkCategory" + i.ToString(), true).Single();
(c as textBox).Text = ...;
Run Code Online (Sandbox Code Playgroud)
添加一些错误检查并将其包装在一个漂亮的(扩展)方法中.
编辑:它返回,Control[]所以最后需要a [0]或a .Single().添加.
for(...)
{
CheckBox c = this.Controls["chkCategory" + i.ToString()] as CheckBox ;
c.Text = categories[i];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8097 次 |
| 最近记录: |