dotnet/winforms
Auf GitHub ansehenIncorrect toolbar location when restored via `ToolStripManager.LoadSettings`
Open
#4.449 geöffnet am 10. Jan. 2021
:beetle: bugarea-Layoutarea-controls-StripControlshelp wantedtenet-compatibility
Repository-Metriken
- Stars
- (4.100 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 14T 22h) (56 gemergte PRs in 30 T)
Beschreibung
Presumably all versions:
- .NET Framework: 4.6.1 (tested)
- .NET Version: 5.0 (tested)
Problem description:
Originally reported in https://github.com/gitextensions/gitextensions/issues/8680.
If an application has multiple toolbars, and those are placed at an arbitrary location and persisted via ToolStripManager.SaveSettings, not all toolbars will be correctly located once ToolStripManager.LoadSettings is called.
E.g. on save:

On load:

Expected behavior:
The location of the toolbars persisted in the config must be preserved.
Minimal repro:
- clone https://github.com/RussKie/Test-ToolStripLoad
- Run the app, align both toolbars to the left one under another.
- Stop the app.
- Open the user.config file, located somethere at
C:\Users\<user>\AppData\Local\ToolstripLoad\ToolstripLoad_Url_<random string>\1.0.0.0, check that both toolbars' locations are like this:
<System.Windows.Forms.ToolStripSettings.toolsettings.ToolStripFilters>
<setting name="Name" serializeAs="String">
<value>ToolStripFilters</value>
</setting>
<setting name="Location" serializeAs="String">
<value>7, 25</value>
</setting>
</System.Windows.Forms.ToolStripSettings.toolsettings.ToolStripFilters>
<System.Windows.Forms.ToolStripSettings.toolsettings.ToolStripMain>
<setting name="Name" serializeAs="String">
<value>ToolStripMain</value>
</setting>
<setting name="Location" serializeAs="String">
<value>7, 0</value>
</setting>
</System.Windows.Forms.ToolStripSettings.toolsettings.ToolStripMain>
- Run the app again and observe the bottom toolbar shifted by few pixels to the right.
- Close the app and see that the location value for
ToolStripFiltershas changed.