I've done this before - I just make the window large enough to fit all panels. At runtime, I hide all but the default panel, and set their locations equal. Additionally, I set the size of the parent window (or control) to be the size I want such that one panel fits nicely in the window. Your selection method (clicking images) seems ok, as you'd detect which image is clicked, and show/hide the corresponding panels.
It's a little bit clunky, but for some cases it works just fine. This works great for applications where you want to see all the panels at design time, but only see one panel at runtime. Thus, using Visual Studio's built-in localization tools will continue to work.
Here's some sample code I've copied from a project. This is actually a Settings window, where I select panels to view from a TreeView.
Width = 640; // set the size of the form, as it's larger in Designer mode
Height = 480;
simulationPanel.Visible = false; // hide all panels, and set them to be top-left
simulationPanel.Top = 0; // relative to their parent control
simulationPanel.Left = 0;
delaysPanel.Visible = false;
delaysPanel.Top = 0;
delaysPanel.Left = 0;
occurrencesPanel.Visible = false;
occurrencesPanel.Top = 0;
occurrencesPanel.Left = 0;
languagePanel.Visible = false;
languagePanel.Top = 0;
languagePanel.Left = 0;
Then, to select a panel, you might do something like the following:
private void ShowPanel(string name)
{
// its easy to just hide all panels again if one is currently visible
simulationPanel.Visible = false;
delaysPanel.Visible = false;
occurrencesPanel.Visible = false;
languagePanel.Visible = false;
if (name == "language")
{
languagePanel.Visible = true;
} else if (name = "delays")
{
delaysPanel.Visible = true;
}
... etc
}