Day 1 - Windows Mobile OpenFileDialog and SaveFileDialog, why are you so terrible?

Yeah, so whoever the UX person is behind the Windows Mobile version OpenFileDialog and SaveFileDialog, they need to reevaluate their career choice. Here's a screen shot of these beauties in action:

save open

What the hell is with the OpenFileDialog? You can't browse through the file system to find what you want. You gotta bust out the stylus (problem #1) and search for the file. And even then it has to be in the path of your My Documents folder (problem #2).

I try to avoid these dialogs like the plague, but finally ended up needing an OpenFileDialog. I ended up writing my own out of principle:

goodopen

Don't get me wrong, this isn't the end all be all of Windows Mobile OpenFileDialogs, but it is infinitely better than the stock version. It works basically like the standard OpenFileDialog:

  1. Create an instance.
  2. Set a filter if need be.
  3. Set the initial directory if need be.
  4. ShowDialog

I still want to tweak it a bit more so that the fonts and such are all customizable via the developer, and eventually write a SaveFileDialog (probably just throw a TextBox at the bottom). But this will do for now; you can download the assemblies for the Windows Mobile OpenFileDialog here. You'll need to deploy all the assemblies to use it, but the type in particular you should be interested in is WindowsMobile.CommonDialogs.OpenFileDialog.

13 comments:

Anonymous said...

Nice, really nice. I thought I was the only one who thought de open and save dialog boxes were crappy. Looking forward to your enhanced tools for open and save dialog boxes.

Maarten
The Netherlands

Anonymous said...

Hi, thanks for your component, it really works. I had searched a long time to find a solution and I thought that I am the only person who complains about the standard dialogues. There is a question left: Who can I set the filter?

Greetings from Germany
Dirk

Koush said...

You can use the Filter property to set a filter.
It works just like the standard Windows dialogs.

Koush said...

For example:

dlg.Filter = "Audio Files|*.mp3;*.wma;*.wav";

However, the dialog only supports a single filter for now. Maybe I'll make the filter selectable later.

Anonymous said...

"I ended up writing my own out of principle".

LOL :D

Anonymous said...

It must be a great component. However, when I tried to install it into Visual Studio 2008 with WM 6 SDK, it failed with the following message:
"There are no components in ...\WindowsMobile.CommonDialogs.dll that can be placed on the toolbox"

Can it work with WM6?

Best regards,

paul

Anonymous said...

Thanks, its more and more user friendly than original components.

Gimli2
Czech republic

Anonymous said...

Hi, you might want to try my NETCFOpenFileDialog

http://heresmycode.blogspot.com/2009/08/net-cf-open-dialog-box.html

Graeme said...

Very cool, saved me a lot of trouble. Much appreciated.

Cheers
Graeme

Anonymous said...

Thanks for providing this.
I'm looking for something a bit deeper though: does anyone know of a way of replacing this core Windows system call with one that is actually usable like this one is?
It's fine to fix our own code, but there's so much software out there which is hobbled by thid problem.

Anonymous said...

Hi,

nice Dialog. It works and i can make my tests.

It would be nice if you tell the comunity the copyright conditions.


Regards

Maik

Fajar Rahmadhani said...

Thanks for OpenDialog. how about for SaveDialog?

Unknown said...

Hi, your control is great. I would like to use it in my project, but I have a question: is it possible to change file list's background color to white instead of system color? I would like to use this control for Omnia Pro, but on this devices file list's background is black and font color is also black, so I can't use it. Please give me any feedback