一、问题描述:
最近一直在做C#项目,随着项目的不断扩大,Form窗体中TabControl控件的内容一行已经放不下了,于是乎就设置了属性multiline为true,但是随之而来的就是一个新问题。当切换其他程序窗口返回后,就出现了一个页面渲染问题,页面中间出现大块的空白。然后页面内容整体下沉了。
这个问题十分难解,由于只是C#小菜鸟,找遍全网也没找到解决方案。最终在结合chatGPT及组内大神的帮助下,解决该问题。
二、解决思路:
需要重写一个form窗体的resize方法,且在初始化窗体时进行重新绘制大小。代码如下:
namespace BINHELPER
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
//初始化之后调用
this.Resize += new EventHandler(Form2_Resize);
}
//重写绘制方法
private void Form2_Resize(Object sender, EventArgs e)
{
tabControl1.Bounds = new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height);
}
}
}
修改后再次启动程序则不会出现此类问题。以此作为一个经验积累。