C# winform 窗体最大化后怎样让上面的控件随着放大

number007cool 2019-12-20 01:46:36
请教大家两个关于WINFORM窗体的问题:
1、C# winform 窗体最大化后怎样让上面的控件随着放大,而且能够根据电脑实际分辨率全屏显示。


这是我现在 的效果,放大后很丑

2、怎样动态添加chart(或者第三方曲线控件)到winform窗体上,摆放好位置,设置好chart的窗体大小 。

比如,有的时候界面上只需要一个chart控件,有的时候要2个或者4个、6个之类的,怎样让他们彼此摆放整齐。

之前都是手动拖上去的

谢谢大家!
...全文
3124 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Neter_yx 2020-12-19
  • 打赏
  • 举报
回复 1
设置一下Anchor属性为Bottom和Right就可以了。
andy_wanhl 2019-12-23
  • 打赏
  • 举报
回复
这里有大神分享的一篇winform窗体缩放的文章,看下对你有没有帮助。 [分享]做一做,winfrom 窗体程序 自动缩放https://bbs.csdn.net/topics/392344412
number007cool 2019-12-23
  • 打赏
  • 举报
回复
引用 8 楼 desperaso 的回复:
[quote=引用 4 楼 number007cool 的回复:]
你怎么设计的我也整不太明白。大概就是外部位置变化,内部跟着变吧。。。 我是这么搞的,还没搞完,参考着看,可以打开文件,编辑、预览跟着窗体变,参考着看吧 https://pan.baidu.com/s/1gAg5PUOcoUKNskS1K6Am0A [/quote] 主窗体 左侧停靠一个dockPannel 控件,右侧停靠一个xtraTab控件 dockPnanel上停靠一个窗体,串口关闭打开操作用 xtraTab 上停放5个子窗体。 按照你的代码修改,tabpage上的子控件可以缩放调整位置,左侧那个窗体不行,就是上面的那种效果。
number007cool 2019-12-20
  • 打赏
  • 举报
回复
引用 12 楼 良朋 的回复:
控件随着放大是很困难,但是让容器放大,按钮label等控件保持相对位置就好办,基本也够了。
设置控件的 Author 和 Dock 属性。
如果实在难以办到,仅仅变位置也可以
number007cool 2019-12-20
  • 打赏
  • 举报
回复
引用 12 楼 良朋 的回复:
控件随着放大是很困难,但是让容器放大,按钮label等控件保持相对位置就好办,基本也够了。
设置控件的 Author 和 Dock 属性。
原生的控件就可以了么?
良朋 2019-12-20
  • 打赏
  • 举报
回复
控件随着放大是很困难,但是让容器放大,按钮label等控件保持相对位置就好办,基本也够了。
设置控件的 Author 和 Dock 属性。
大然然 2019-12-20
  • 打赏
  • 举报
回复
改为tableLayoutPanel,flowLayoutPanel ,他是专门用来对付布局用的,特别是窗口变化,子控件一起变化,另外要子控件要用dock和Author 属性
enaking 2019-12-20
  • 打赏
  • 举报
回复
会用Panel控件和控件的Dock属性,就能达到你的效果。
desperaso 2019-12-20
  • 打赏
  • 举报
回复
引用 4 楼 number007cool 的回复:


你怎么设计的我也整不太明白。大概就是外部位置变化,内部跟着变吧。。。
我是这么搞的,还没搞完,参考着看,可以打开文件,编辑、预览跟着窗体变,参考着看吧
https://pan.baidu.com/s/1gAg5PUOcoUKNskS1K6Am0A
zxy2847225301 2019-12-20
  • 打赏
  • 举报
回复
使用几个类似Panel的容器控件占着位置,类似css布局一样,根据需要调节Panel属性Dock属性为Left或者Right或者Bottom或者Top或者Fill等,但有一个Panel必须是Fill,你那些动态生成的控件就作为Panel的子控件,然后可以设置子控件的margin或者padding或者position属性调到你想要的
Bridge_go 2019-12-20
  • 打赏
  • 举报
回复
试试用SplitContainer各种Dock
北京的雾霾天 2019-12-20
  • 打赏
  • 举报
回复
试着设置控件的 Author 或 Dock 属性。
number007cool 2019-12-20
  • 打赏
  • 举报
回复
引用 1 楼 desperaso 的回复:

        public Form1()
        {
            InitializeComponent();

            Panel panel = new Panel()
            {
                Size = new Size(this.Width-100,this.Height-100),
                Location = new Point(10,10),
                BackColor = Color.SteelBlue,
            };
            this.Controls.Add(panel);

            this.Resize += (sender,e)=> 
            {
                panel.Size = new Size(this.Width - 100, this.Height - 100);
            };
        }

desperaso 2019-12-20
  • 打赏
  • 举报
回复

public Form1()
{
InitializeComponent();

Panel panel = new Panel()
{
Size = new Size(this.Width-100,this.Height-100),
Location = new Point(10,10),
BackColor = Color.SteelBlue,
};
this.Controls.Add(panel);

this.Resize += (sender,e)=>
{
panel.Size = new Size(this.Width - 100, this.Height - 100);
};
}

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧