拆分容器拆分器无需用户干预即可更改距离



My Winforms应用程序在数据库中保存并恢复其GUI状态。除了拆分容器的SplitterDistance外,其他一切都正常。

该值已从DB中正确加载和设置,但当我退出应用程序未接触拆分器时,我希望它保存相同的值。但它会保存初始值减去25个像素。如果我多次打开和关闭应用程序,拆分器距离每次减少25像素。

它不是一个自定义控件,只是一个普通的旧.NET SplitContainer。该控件只能通过编程方式访问,以加载其初始SplitterDistance并在退出时保存,无需其他操作。

如何解决此问题?

UPDATE:spl的FixedPanel属性最初设置为None。尝试将其设置为Panel1Panel2;在这两种情况下,当我保存SplitterDistance时,它都会增长50个像素。

拆分容器中是否有用户控件,当它们全部加载时,它可能会与包含它的用户控件一起调整大小。

要解决此问题,请设置FixedPanel属性并观察它。

下载示例应用程序

        // my splitContainer1 is Horizontal so i used splitContainer1.ClientSize.Height 
        // if you have splitContainer1 is Vertical use splitContainer1.ClientSize.Width
        // without FixedPanel save and load """  
        // loading SplitterDistance from ini file
        int splitContainery = 0;
        splitContainery = (Win32.GetPrivateProfileInt(PluginName, "splitContainer", 0, iniFilePath));
        splitContainer1.SplitterDistance = splitContainer1.ClientSize.Height - splitContainery;
        // saving splitContainer1.SplitterDistance to ini file
        int hhkt = splitContainer1.ClientSize.Height - splitContainer1.SplitterDistance;
        Win32.WritePrivateProfileString(PluginName, "splitContainer", hhkt.ToString(), iniFilePath);

我使用了以下响应(我的分离器是垂直的):

private void Form1_Load(object sender, EventArgs e) 
{
    int splitContainery = Properties.Settings.Default.SplitterDistance;
    if(splitContainery < splContainer.ClientSize.Width)
        splContainer.SplitterDistance = splContainer.ClientSize.Width - splitContainery;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    int splitContainery = splContainer.ClientSize.Width - splContainer.SplitterDistance;
    Properties.Settings.Default.SplitterDistance = splitContainery;
    Properties.Settings.Default.Save();            
}

我为splContainer.SplitterDistance创建了PropertyBinding,但没有将其绑定到属性,只是为了将其放在ApplicationSettings文件中。

int splitContainery = Properties.Settings.Default.SplitterDistance;

如果我可以使用Properties.Settings.Default.SplitterDistance,那么我永远不能使用ini文件,例如

相关内容

  • 没有找到相关文章

最新更新