标题:[已解决]如何使panel控件从窗体边沿移入和移出?
只看楼主
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
 问题点数:0 回复次数:9 
[已解决]如何使panel控件从窗体边沿移入和移出?
窗体上有panel控件,如何使它从窗体左边或右边慢慢移入和移出?

[[it] 本帖最后由 wwx024 于 2008-9-19 14:54 编辑 [/it]]
搜索更多相关主题的帖子: panel 控件 窗体 边沿 
2008-09-17 14:44
sunbluebird
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-4-16
得分:0 
C#技术交流群:55180062 一起学习,一起成长

C#交流群:55180062
2008-09-17 15:04
AndyChan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-14
得分:0 
定义一个计时器timer,设定一个时间间隔,时间一到,会自动响应一个事件。在事件里改变panel的x坐标,让其递增。当panel坐标等于窗体右边界坐标时,重新设置。
2008-09-17 23:51
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
得分:0 
是不是这样:
            Int32 i = 0;
            if (i < 100)
            {
                panel1.Location = new Point(i, 200);
                i += 10;
            }
            panel1.Size = new Size(200, 500);
可这样没反应。什么都看不到
2008-09-18 08:43
mkxzy
Rank: 2
等 级:论坛游民
帖 子:39
专家分:40
注 册:2007-3-26
得分:0 
panel跟Form的颜色是不是一样了?
2008-09-18 09:24
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
得分:0 
[bo][un]wwx024[/un] 在 2008-9-18 08:43 的发言:[/bo]

是不是这样:
            Int32 i = 0;
            if (i < 100)
            {
                panel1.Location = new Point(i, 200);
                i += 10;
            }
            panel1.Size  ...

我是动态生成panel1的,忘了加:this.controls.add(panel1);
现在panel1是可以显示,只是突然出现,没有慢慢移入的效果;
代码如下:
private void timer1_Tick(object sender, EventArgs e)
        {
            Panel panel1 = new Panel();
            panel1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);
            
            Int32 i = 0;
            if ( i < 100 )
            {
                i+= 10;
                panel1.Location = new Point(i, 70);
               
               
            }
            
               
            panel1.BackColor = System.Drawing.Color.Blue;
            this.Controls.Add(panel1);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

窗体有animatewindow的API函数可以实现从左到右打开。panel又没有这样的函数?

[[it] 本帖最后由 wwx024 于 2008-9-18 14:10 编辑 [/it]]
2008-09-18 14:00
redcar
Rank: 2
等 级:论坛游民
帖 子:210
专家分:60
注 册:2006-9-13
得分:0 
有相关的美化控件.dotnetbar之类的
2008-09-18 14:06
Jacky_Athena
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-7
得分:0 
我想你说的并不是挪动的问题,你是想实现想VS工具箱一样的风格,我记得有人写过dll文件.你可以找找,实在找不到你可以用第三方控件来实现.Infragistics DevExpress 等

走自己的路 让别人无路走!
QQ:103890711
MSN:zhao_zhijia@
2008-09-18 15:07
freedommlw
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-4
得分:0 
private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer1.Interval = 200;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.panel1.Location = new Point(this.panel1.Location.X - 1, 200);
        }
2008-09-19 04:53
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
得分:0 
[bo][un]freedommlw[/un] 在 2008-9-19 04:53 的发言:[/bo]

private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer1.Interval = 200;
        }

        private void timer1_Tick(object sender, Eve ...

可以实现panel的移入效果,但没有条件限制,panel会一直移动。
private void timer1_Tick(object sender, EventArgs e)
        {
            if (panel1.Location.X < this.Width)
            {
                this.panel1.Location = new Point(this.panel1.Location.X + 1, 200);
            }
            else
            {
                timer1.Stop();
            }
        }
这样当panel全部移出窗体后就会停止。


非常感谢freedommlw,问题解决。也非常感谢大家的关注。

[[it] 本帖最后由 wwx024 于 2008-9-19 14:35 编辑 [/it]]
2008-09-19 14:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-233624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019349 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved