
Introduction
Firefox Dialog is a user control that you could easily add in your application with minimum coding to have a Firefox like options dialog in your .NET app. Control.FirefoxDialog is just 24kb with 72kb MozBar implementation (96kb total).
Background
Patrik Bohman has provided a great control named
MozBar. While another C# Win App PagedDialog (unfortunately I don't remember the URL and author name) provided a basic property page implementation. What I was looking for is a combination of above two i.e a Firefox like Options dialog. I wish to that it requires almost no effort to add Firefox like options dialog in your application.
Using the Control
- Compile Control.FirefoxDialog project to obtain DLL.
- Create a Windows Application project and add a form Form1
- Right click on Toolbox and click Choose Items...
- Select/Browse for Control.FirefoxDialog.dll
- In Toolbox look for FirefoxDialog Control and drag drop on Form1
- Add a imageList imageList1 in Form1 and include one image for each tab.
- Add a user control PageEmail derived from Control.FirefoxDialog.PropertyPage
- Similarly add other pages/tabs user control
- Now type following code in your Form1_Load
private void Form1_Load(object sender, EventArgs e)
{
this.firefoxDialog1.ImageList = this.imageList1;
this.firefoxDialog1.AddPage("Main", new PageMain());
this.firefoxDialog1.AddPage("Email", new PageEmail());
this.firefoxDialog1.AddPage("Internet", new PageInternet());
this.firefoxDialog1.AddPage("Spell", new PageSpell());
this.firefoxDialog1.AddPage("Favourites", new PageFav());
this.firefoxDialog1.Init();
}
This is it! Press F5 to run application. You could override following in your user controls:
namespace Demo
{
public partial class PageEmail : Control.FirefoxDialog.PropertyPage
{
public PageEmail()
{
InitializeComponent();
}
public override void OnInit()
{
MessageBox.Show("PageEmail.OnInit Called.
Put your loading logic here.
Note that this method is called only Once!", "Control.FirefoxDialog");
}
public override void OnSetActive()
{
MessageBox.Show("PageEmail.OnSetActive Called.
Put code that you wish to call whenever Email tab become active.
Note that this method will be every time Email is activated!", "Control.FirefoxDialog");
}
public override void OnApply()
{
MessageBox.Show("PageEmail.OnApply Called.
Put your saving logic here.
It will be called when you hit Apply button.", "Control.FirefoxDialog");
}
}
}