C# winform中使用Panel调节窗口变化是各控件的位置(转)

我的目的是在窗口上有些控件,在窗口大小变化时,上面的控件位置不动,大小也不动。下面的控件随着窗口的大小变化而变大。

做法是用两个panel,panelTop和panelFill。上面的控件都放到panelTop里面。下面的控件都放到panelFill中。

然后设置PanelTop的Dock属性是Top;

设置panelFill的Dock属性是Fill。

但是总是出现下面的PanelFill把上面的PanelTop覆盖的问题。可以看见实际上下面的控件顶端已经跑到上面的PanelTop那儿去了。

解决办法是:

找到窗口的MainForm.Designer.cs中,找到下面的代码:

this.Controls.Add(this.panelFill);             this.Controls.Add(this.panelTop);

如果这段代码,是panelTop在第一行,则需要把它挪到第二行,让panelTop放在最后。就会解决上面的问题。

原文地址:https://www.cnblogs.com/xihong2014/p/10867344.html

时间: 2024-08-11 22:18:22

C# winform中使用Panel调节窗口变化是各控件的位置(转)的相关文章

[WinForm] 使用反射将业务对象绑定到窗体或控件容器

在WebForm中,可以使用反射将业务对象绑定到 ASP.NET 窗体控件.最近做Winform项目,也参考WebForm中的代码实现同样的功能.     Winform没有提供类似WebForm中的FindControl方法,我于是用遍历控件的方式,写了一个类似WebForm中的这个方法,考虑到Winform中的很多控件放在Label.TabControl中,方法采用了递归的方式.     Winform和Winform的控件也有些区别,如在Winform中,DateTimePicker取值是

[Winform]线程间操作无效,从不是创建控件的线程访问它的几个解决方案,async和await?

目录 概述 取消跨线程检查 使用委托异步调用 sync和await 总结 概述 最近在qq群里有一朋友,问起在winform中怎么通过开启线程的方式去处理耗时的操作,比如,查看某个目录下所有的文件,或者符合要求的文件.下班回来,也研究了一下.发现多线程这块有点薄弱,也算是补一补吧. 在winform开发,经常会遇到需要在控件上加载大量数据(也就是常说的耗时操作),这会导致程序出现假死状态,这个时候我们就会想到线程. 在智能客户端应用程序中,这样的线程创建并管理用户界面 (UI),因而称为 UI

在C#中子线程如何操作主窗口线程上的控件

在C#中子线程怎样操作主线程中窗口上控件 在C#中,直接在子线程中对窗口上的控件操作是会出现异常,这是因为子线程和运行窗口的线程是不同的空间,因此想要在子线程来操作窗口上的控件.是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法.其作用就是让子线程告诉窗口线程来完毕对应的控件操作. 要实现该功能,基本思路例如以下: 把想对还有一线程中的控件实施的操作放到一个函数中,然后使用delegate代理那个函数.而且在那个函数中加入一个推断,用 InvokeRequir

窗口使用半透明图片,控件不透明的方法

最近项目软件需要制作半透明窗口,但控件不能透明.窗口和控件都是自绘的.网上大部分例子都是直接设置窗口透明度实现,这样只能让整个窗口透明,达不到我们想要的效果.经研究发现,需要使用父子两个窗口配合制作,父窗口不能在OnPaint那里自绘,而是直接GetDC得到句柄自绘背景,子窗口负责自绘控件. 关键代码:父窗口 OnInitDialog() { m_dlg.Create(m_hWnd); m_dlg.ShowWindow(SW_SHOW); m_dlg.MoveWindow(&rct); HDC

在浏览器中通过bartender,调用条码打印机的active控件代码的实现

系统中需要在浏览器,直接调用条码打印机,打印出产品条码. 现实中的条码打印机,品种繁多,很难在一个程序中实现, 于是我们用已经支持所有条码打印机的bartender软件 调用它的api ,来实现在浏览器中打印条码. 下面是 代码实现: Private Sub UserControl_Initialize() 'On Error Resume Next Dim app1 As BarTender.Application Set app1 = CreateObject("BarTender.Appl

代码中使用bitmap资源并加载到控件上

1.从res/drawable/XX.jpg里引用图片资源: 1. Resources res = getResources(); Bitmap inDrawable= BitmapFactory.decodeResource(res, R.drawable.user_img_grey); userImgButton.setImageBitmap(inDrawable ); 2.从本地sd卡的文件路径中使用图片资源: UserImgPath=Environment.getExternalStor

PyQt5 中当窗口大小改变时,如何去调整控件的位置以适应窗口大小改变的思考

from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys,time class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QLineEdit 输出模式的案例") self.resize(400,400) self.set_ui() self.i = 1 def set_ui(self): pass def resizeEvent(sel

【C#】MDI窗体中,将子窗体置于父窗体控件之上的方法

问题 解决办法 user32dll SystemRuntimeInteropServices 代码 总结 问题 这几天在优化程序的时候发现了一个问题,就是在MDI窗体中的子窗体被激活显示出来之后,总是被主窗体中的控件遮挡(各种控件).解决的方法也试了很多但是都不是很满意,由于C#的WINFROM窗体没有SETPARENT的方法,所以很多东西都需要自己去编写,下面就贴一个至少让我感觉非常不错的方法吧. 解决办法 user32.dll user32.dll是Windows用户界面相关应用程序接口,用

ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法

fragment中添加了button和checkbox这些控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应. 这时候就可以使用descendantFocusability来解决啦,API描述如下: android:descendantFocusability 该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系. 属性的值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点