Ron Allen
chizotz at mchsi.com
Wed Jul 18 11:59:00 CDT 2007
Oops. Copy and paste error in the code I sent. The variable regPath should be
the same in both the form open and form close events, and in the code I sent
it wasn't. I copied the code out of a form where I do other things with the
registry too, and copied the wrong line where the value of regPath is set for
the form close event. Sorry.
---------------------- Original Message: ---------------------
From: chizotz at mchsi.com (Ron Allen)
To: dba-vb at databaseadvisors.com
Subject: Re: [dba-VB] VB.Net XML - store form defaults
Date: Wed, 18 Jul 2007 16:53:46 +0000
> John,
>
> I know that there is a school of thought that this approach is
inappropriate,
> but I use the registry for this sort of thing. I use the HKEY_CURRENT_USER
> hive so each user has their own set of saved values, which is most often
> convenient for me.
>
> This example stores (in the form close event) the location, height, and
width
> of the form, and (in the form open event) restores the form to that size and
> location. You should be able to easily adapt it for your needs.
>
> Ron
>
>
>
> (all syntax in C#, but should translate easily and well to VB)
>
> using Microsoft.Win32; //necessary include to get Registry classes
>
> In form close event:
>
> /*
> If form is maximized, minimized, or larger than
> the screen in either dimension, do not save size
> and position information
> */
> if(this.WindowState != FormWindowState.Maximized &&
> this.WindowState != FormWindowState.Minimized &&
> this.Width <= Screen.PrimaryScreen.Bounds.Width &&
> this.Height <= Screen.PrimaryScreen.Bounds.Height)
> {
> string regPath = @"Software\Tribune\Circ\CircTools\Settings";
> RegistryKey regKey = Registry.CurrentUser.OpenSubKey(regPath, true);
> if(regKey.GetValue("ResettingPositions").ToString() == "0")
> {
> regPath = @"Software\Tribune\Circ\CircTools\Forms\Main\Position";
> regKey = Registry.CurrentUser.OpenSubKey(regPath, true);
> if(regKey != null)
> {
> regKey.SetValue("X", Location.X);
> regKey.SetValue("Y", Location.Y);
> regKey.SetValue("H", this.Height);
> regKey.SetValue("W", this.Width);
> }
> }
> }
>
> In form open event:
>
> string regPath = @"Software\Tribune\Circ\CircTools\Forms\Main\Position";
> RegistryKey regKey = Registry.CurrentUser.OpenSubKey(regPath, true);
> if(regKey == null)
> {
> regKey = Registry.CurrentUser.CreateSubKey(regPath);
> }
> if(regKey.GetValue("X") != null && regKey.GetValue("Y") != null)
> {
> Location = new Point((int)regKey.GetValue("X"),
(int)regKey.GetValue("Y"));
> }
> if(regKey.GetValue("H") != null && regKey.GetValue("W") != null)
> {
> this.Height = (int)regKey.GetValue("H");
> this.Width = (int)regKey.GetValue("W");
> }