using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
class ImageOpen : Form
{
protected string strProgName;
protected string strFileName;
protected Image image;
public static void Main()
{
Application.Run(new ImageOpen());
}
public ImageOpen()
{
Text = strProgName = "Image Open";
ResizeRedraw = true;
Menu = new MainMenu();
Menu.MenuItems.Add("&File");
Menu.MenuItems[0].MenuItems.Add(new MenuItem("&Open",
new EventHandler(menufileopenonclick), Shortcut.CtrlO));
}
void menufileopenonclick(object obj, EventArgs ea)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "All Image Files|*.bmp;*.ico;*.gif;*.jpg;";
if (dlg.ShowDialog( ) == DialogResult.OK)
{
try
{
image = Image.FromFile(dlg.FileName);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, strProgName);
return;
}
strFileName = dlg.FileName;
Text = strProgName + "-" + Path.GetFileName(strFileName);
Invalidate();
}
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics gf = e.Graphics;
if (image != null)
gf.DrawImage(image, 0, 0);
//base.OnPaint(e);
}
}
When I complie it in the .netFramework sdk enivonment,it can run peacefully;when I run the program with the visual studio 2005[ide],it also can run,it browes a Form,then I press the Menuitem as File-----open,it throws out an exception. What confused me most was that it did not throw out an exception(in fact ,like I said run smoothly)when i complie it in the .netframework sdk enivonment[dos] and run the program in the same way(press File---open).
I hope somebody who can handle the problem can discuss it with us or contact me.
email: [email protected]
msn: [email protected]
Thank you very much!
Sorry,I can handle it now,I should have added [STAThread]
before public static void Main() .