主题:动态调用的问题
异乡的耗子
[专家分:250] 发布于 2006-10-20 12:31:00
各位高手帮助我一下。我的程序是这样的。主界面有一个空白面板,面板里什么都没有,通过点击一些按钮或者菜单添加一些已经写好的控件。可是我在添加的时候想判断现在面板里有没有这个控件。有的话就不添加了,直接显示相应的控件。但是代码编译不过去。因为编译的时候面板里面是没有控件的。应该怎么解决这种问题?
回复列表 (共6个回复)
沙发
jzyray [专家分:20610] 发布于 2006-10-20 13:32:00
直接用面板装载控件,然后切换面板Visible属性比较方便。
3 楼
异乡的耗子 [专家分:250] 发布于 2006-10-22 15:43:00
谢谢两位的回复.其实用visible和用show() hide() 没有本质的区别.我的意思是面板编译的时候没有空件.是在执行的过程中动态加载的.也可以说执行代码的时候不知道面板中有没有控件,只是用代码检查现在面板中有没有这个控件的实例,如果有的话就显示,没有的话就动态添加.那么我的代码应该写在那里?怎么写呢?我在自定义面板类的时候写了一个方法,但是编译不过去.希望个位给小弟解释一下应该怎么写.不胜感激!
4 楼
叫阿son [专家分:150] 发布于 2006-10-23 18:41:00
用this.Controls.Coun判断你窗口上的控件数,就能知道该不该在新添加控件了
5 楼
sdcy [专家分:70] 发布于 2006-10-23 21:11:00
//添加一个BUTTON
private void button1_Click(object sender, EventArgs e)
{
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
button2.Location = new System.Drawing.Point(150, 62);
button2.Name = "button2";
button2.Size = new System.Drawing.Size(75, 23);
button2.TabIndex = 1;
button2.Text = "button2";
button2.UseVisualStyleBackColor = true;
this.Controls.Add(button2);
}
要判断是否已经加载就设个BOOL变量什么的
如果你的意思是加载自己已经定义好的一个控件:
System.Windows.Forms.Button button2;
private void button1_Click(object sender, EventArgs e)
{
add();
this.Controls.Add(button2);
}
private void add()
{
button2.Location = new System.Drawing.Point(150, 62);
button2.Name = "button2";
button2.Size = new System.Drawing.Size(75, 23);
button2.TabIndex = 1;
button2.Text = "button2";
button2.UseVisualStyleBackColor = true;
}
6 楼
异乡的耗子 [专家分:250] 发布于 2006-10-24 12:34:00
非常感谢几位的帮助!问题已经解决。谢谢!再次致谢!
我来回复