首页 新闻 会员 周边 捐助

C#在同一个窗体里根据步骤显示不同的userControl里的内容

0
悬赏园豆:5 [已解决问题] 解决于 2013-05-09 14:26

我创建了一个Form窗体,在里面放了三个按钮:上一步,下一步,取消,一个panel,我想在panel里当我点击下一步的时候显示一个userControl里的内容,再点击上一步的时候再显示另一个panel里的内容,到最后一步下一步变成完成。该怎么做?

lichen辰的主页 lichen辰 | 初学一级 | 园豆:196
提问于:2013-04-17 09:27
< >
分享
最佳答案
0

或者可以上网找找现成的控件,应该有类似的。http://www.codeproject.com/Articles/120607/Simple-Wizard-for-WinForms

收获园豆:5
会长 | 专家六级 |园豆:12463 | 2013-04-17 11:30
其他回答(5)
0

panel是一个容器控件,所以可以在Button里写如下代码:

this.panel1.Controls.Clear();
this.panel1.Controls.Add(你所想放的userControl);

呆呆蚁 | 园豆:231 (菜鸟二级) | 2013-04-17 10:11

我知道可以这样用,但是上一步下一步是在Form里的,和userControl不在一块,如果步骤超过三步该怎么判断?

支持(0) 反对(0) lichen辰 | 园豆:196 (初学一级) | 2013-04-17 10:17
0

定义一个变量 ,记录你点击的次数。

悟行 | 园豆:12559 (专家六级) | 2013-04-17 10:48

我是这样写的:

int stepBack;
int stepNext;
//bool stepBack = false;
//bool stepNext = false;
//上一步按钮
private void btnBack_Click(object sender, EventArgs e)
{
if (stepBack == 0)
{
this.panel2.Controls.Clear();
this.panel2.Controls.Add(sweepFrequencyData);

}
if (stepBack == 1)
{
this.panel2.Controls.Clear();
this.panel2.Controls.Add(fssrData);
}

}
//下一步按钮
private void btnNext_Click(object sender, EventArgs e)
{
if (stepNext == 0)
{
this.panel2.Controls.Clear();
this.panel2.Controls.Add(fssrData);

}
if (stepNext == 1)
{
this.panel2.Controls.Clear();
this.panel2.Controls.Add(addDataFile);
}

}但是感觉不对

支持(0) 反对(0) lichen辰 | 园豆:196 (初学一级) | 2013-04-17 12:01
0

panel不是可以隐藏吗?

直接

隐藏其他panel

显示当前panel的就行!

SeeMore | 园豆:313 (菜鸟二级) | 2013-04-17 12:15
0

//上一步按钮
private void btnBack_Click(object sender, EventArgs e)
{
if (operateFlag == 2)
{
btnBack.Visible = true;
btnNext.Visible = true;
FSSRdata fssrData = new FSSRdata();
panel2.Controls.Clear();
panel2.Controls.Add(fssrData);
}
if (operateFlag == 1)
{
btnBack.Visible = false;
panel2.Controls.Clear();
panel2.Controls.Add(sweepFrequencyData);
}

switch (operateFlag)
{
case 2:
operateFlag = 1;
break;
case 1:
operateFlag = 0;
break;
}

}
//下一步按钮
private void btnNext_Click(object sender, EventArgs e)
{
if (operateFlag == 0)
{
btnBack.Visible = true;
FSSRdata fssrData = new FSSRdata();
panel2.Controls.Clear();
panel2.Controls.Add(fssrData);
}
if (operateFlag == 1)
{
//btnBack.Enabled = true;
btnOver.Visible = true;
btnNext.Visible = false;
btnBack.Visible = true;
panel2.Controls.Clear();
panel2.Controls.Add(addDataFile);
}
switch (operateFlag)
{
case 0:
operateFlag=1;
break;
case 1:
operateFlag = 2;
break;
}

图片:

lichen辰 | 园豆:196 (初学一级) | 2013-04-17 16:36
0

我项目里刚好有类似的东西 ,你把panel里放3个groupBox,窗体加载的时候全部隐藏,然后根据你点击的按钮一个一个的显示,但是要注意一点就是自己要注意显示过的groupbox,当他关闭时候要把其他你不想显示的也要隐藏

珍是唯一 | 园豆:4 (初学一级) | 2013-04-20 10:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册