2

ToolStripManager 不会按预期将我的工具条恢复到以前的位置。我创建了一个非常简单的应用程序来演示。我在 ToolStrip 容器中包含 4 个可移动的工具条。我移动工具条以将它们从上到下排列为 4-3-2-1(图 A)。然后关闭应用程序。当我重新打开它时,它们的顺序如图 B 所示。

这是简单的代码。我已经验证 LoadSettings 和 SaveSettings 方法调用中使用的 Key 是相同的字符串。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ZT2
{
    public partial class Form1 : Form
    {
        string keyName = "abc";
        public Form1()
        {
            InitializeComponent();
            keyName = Application.ProductName + this.Name + "xyz";
            ToolStripManager.LoadSettings(this, keyName);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            ToolStripManager.SaveSettings(this, keyName);
        }
    }
}

图 A 关闭前表格

图 B 重新打开的表格

Visual Studio 2010 - C# .Net 4 客户端配置文件

4

3 回答 3

1

抱歉太快了...

您必须将其保存在配置文件或其他位置的某个位置,并在每次显示时检查这些值。

检查此代码段

代码片段

于 2012-12-06T20:20:11.867 回答
1

保存表单关闭设置:

ToolStripManager.SaveSettings(this);

通过以下方式加载表单加载中的设置:

ToolStripManager.LoadSettings(this);
于 2012-12-06T20:22:43.170 回答
0

ToolStripContainer 的一个问题是您不能只设置包含 ToolStrip 的位置,因为容器总是检查容器中的其他 ToolStrip。

如果您在设计时不将 ToolStrips 放置在容器中,它工作正常。您只需要一个函数来初始化它们一次。

另一种可能性是在调用 ToolStripManager.LoadSettings 函数之前将每个工具条的父属性设置为 null

于 2013-07-28T22:09:06.693 回答