Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示和隐藏winforms(扩展?)C#.NET的部分_C#_.net_Winforms_Controls_Extend - Fatal编程技术网

显示和隐藏winforms(扩展?)C#.NET的部分

显示和隐藏winforms(扩展?)C#.NET的部分,c#,.net,winforms,controls,extend,C#,.net,Winforms,Controls,Extend,我有一个关于表单和控件的问题。我想添加一种功能,使表单的一部分仅在单击某个内容时显示。例如,我有表单1,表单上有一个按钮,当单击该按钮时,表单会增长或扩展(滑出?),以显示在单击按钮之前不存在的其他控件。我不知道这叫什么,所以我不知道该找什么,但我看到它在许多其他应用程序中使用。非常感谢您提供有关此信息。您可能需要滚动自己的动画,在计时器上增加窗体(或面板,或其他)的大小尺寸,从而暴露以前隐藏的控件 Timer T = new Timer(); T.Interva

我有一个关于表单和控件的问题。我想添加一种功能,使表单的一部分仅在单击某个内容时显示。例如,我有表单1,表单上有一个按钮,当单击该按钮时,表单会增长或扩展(滑出?),以显示在单击按钮之前不存在的其他控件。我不知道这叫什么,所以我不知道该找什么,但我看到它在许多其他应用程序中使用。非常感谢您提供有关此信息。

您可能需要滚动自己的动画,在计时器上增加窗体(或面板,或其他)的大小尺寸,从而暴露以前隐藏的控件

        Timer T = new Timer();
        T.Interval = 10;
        T.Tick += (s, e) =>
        {
            myForm.Size = new System.Drawing.Size(myForm.Width + 10, myForm.Height);
            if (myForm.Size.Width >= FormWidthThreashold)
                T.Stop();
        };
        T.Start();

冒着陈述显而易见的风险,我不认为有任何方法可以改变WPF?这个东西是内置的,对于WPF来说非常容易。如果不是的话,像这样的事情应该可以让你开始了。

我以前做过。首先将表单组织成逻辑部分。不要将所有控件都留在窗体上,请将它们放在面板中。在设计时,您需要将面板“完全展开”,但在运行时,您可以通过代码操纵面板的左侧、顶部、宽度、高度,甚至对齐和定位属性。您可以使用@Adam Rackis.建议的计时器。。或者可以更改增量值以改变动画的速度。动画本身只是一个循环,以x=x1开始,以x=x2结束,其中x=x+循环内的增量_值。随着“x”值的更改,组件将自动重新绘制。为了获得更平滑的效果,您可能需要在每次迭代中重新绘制控件(或整个面板)。如果它运行得太快,您可以插入延迟或尝试使循环依赖计时器。我对这类东西的计时器有过一些问题,但无可否认,当时我没有使用C#NET(我是用Delphi实现的)。它需要大量的精细细节来让这个工作很好,所以要有耐心,它不是闪光!祝你好运。

对于一个新的开发人员,你推荐WPF而不是winforms吗?我试图通过学习c#来学习c#,因为它比读书更有趣,尽管我确实经常提到这样的网站。如果这类事情比较容易的话,我可以改用WPF。我目前是一个初学者,所以我目前没有做任何重要的工作。这会有多困难呢?学习XAML有点像一条学习曲线,然后再学习MVVM。我想说,使用WinForms熟悉C,然后看看WPF。也感谢您的输入,我将研究这两种样式