2

ToolStripManager は、ツールストリップを期待どおりに以前の場所に復元しません。デモ用に非常に単純なアプリを作成しました。ToolStrip コンテナーに 4 つの可動ツールストリップが含まれています。ツールストリップを移動して、上から下に 4-3-2-1 の順序で並べます (図 A)。次に、アプリを閉じます。もう一度開くと、図 B のように並べられています。

これが簡単なコードです。LoadSettings メソッドと SaveSettings メソッドの呼び出しで使用されるキーが同じ文字列であることを確認しました。

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

次の方法で Form Load に設定をロードします。

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

ToolStripContainer の 1 つの問題は、コンテナーが常にコンテナー内の他の ToolStrips をチェックするため、含まれている ToolStrip の場所を設定できないことです。

設計時に ToolStrips をコンテナーに配置しなくても問題ありません。それらを一度初期化する関数が必要です。

もう 1 つの可能性は、ToolStripManager.LoadSettings 関数を呼び出す前に、各ツールストリップの親プロパティを null に設定することです。

于 2013-07-28T22:09:06.693 に答える