ToolStripManager不恢复工具条的位置

时间:2012-12-06 20:17:20

标签: c# winforms toolstrip

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);
        }
    }
}

Figure A Before closing form

Figure B Reopened form

Visual Studio 2010 - C# .Net 4客户资料

3 个答案:

答案 0 :(得分:1)

很抱歉要快点......

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

检查此代码邮箱

CODESNIPPET

答案 1 :(得分:0)

在表单关闭时保存设置:

ToolStripManager.SaveSettings(this);

在表单加载中加载设置:

ToolStripManager.LoadSettings(this);

答案 2 :(得分:0)

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

如果在设计时没有将ToolStrips放在容器中,它可以正常工作。 你只需要一个函数来初始化它们。

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