c#UserControl中表格,及UserControl调整大小

c# 专栏收录该内容
0 篇文章 0 订阅

感慨一下,为公司内部做应用程序得把需求想在使用者前面,要不改程序改的你想死。如果没有git,我真的会死。


头痛的c#界面显示效果,结果记录一下。

1. 我想要的显示效果

原窗口显示

拉大窗口后,表格大小随窗体改变,两个按钮在窗体下方随动但大小不变

2.程序分两部分

(1)UserControl,其中有表格
(2) 窗体,有tabcontrol, tabcontrol中有两个panel,panel中放usercontrol

3.为了目标显示效果,设置的各组件参数(以下设置都能在属性窗口中设置)

(1)UserControl中DataGridView设置
  • 让表格的所有列自动填满表格空间,设置表格的autoSizeColumnsMode
paramDgv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

如果不设效果如下

  • 让UserControl有滚动条。设置表格的anchor为top|left|right
paramDgv.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));

这里这样设只是我尝试以后的结果,勉强实现了需求。具体为啥我也不清楚。我尝试过(失败的尝试),效果如下,表格数据多的时候并不会出现滚动条

dgv.anchor = left|right|top|Bottom
userControl.autoscroll = true
panel.autoscroll = true
(2) 主窗体中设置
  • 为了让userConrol填充panel,设置usercontrol的dock属性
userControl.dock = DockStyle.Fill;

下图第一个userControl设置了dock,第二个没有设置,拉动窗口时显示对比效果如下

  • 为了让panel随窗体大小变化而变化,panel设置anckor属性为top|bottom|left|right,
Panel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
  • 为了让tabcontrol随窗体大小变化而变化,设置anchor属性为top|bottom|left|right
tabcontrol.anchor = top|left|right|bottom
  • 为了让两个按钮在窗体下方随动,但大小不变,设置按键anchor属性
//左下按键anchor设为left|bottom
surebtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
//右下按键anchor设为right|bottom
cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

ErinLiu虎哥的铲屎员

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值