[Mono-winforms-list] set_Value seems to be having a problem

PFJ paul at all-the-johnsons.co.uk
Tue Apr 18 07:16:45 EDT 2006


Hi,

I have a small image viewer which has been working for quite a while
now. However, I've just come to run it and it throws up an error after
loading a jpeg

Unhandled Exception: System.ArgumentException: '-214783648' not a valid
value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'
<in 0x00163> System.Windows.Forms.ScrollBar:set_Value(Int32 value)

The jpeg is a valid jpeg (displays in eye of gnome)

Any ideas what is happening? Source code and throwback is attached.

As always, I'm happy to BZ this and admit now that the problem could
either be in my head, on my machine, or not be anything at all because
I'm a twit at times.

mono compiled from source (svn) at about 10.30 British Summer Time

TTFN

Paul

8-->
/*
 * ImageViewer.cs - Simple MDI-based image viewer.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software, you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY, without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program, if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
USA
 */

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class ImageViewer : Form
{
	private ImageViewer()
	{
		MenuItem openMenuItem = new MenuItem("Open");
		MenuItem quitMenuItem = new MenuItem("Quit");
		MenuItem fileMenuItem =
			new MenuItem("File", new MenuItem[]
				{openMenuItem, quitMenuItem});
		MainMenu mainMenu = new MainMenu(new MenuItem[] { fileMenuItem });
		Menu = mainMenu;

		Size = new Size(600, 500);
		Text = "DotGNU Image Viewer";
		IsMdiContainer = true;

		openMenuItem.Click += new EventHandler(OpenClicked);
		quitMenuItem.Click += new EventHandler(QuitClicked);
	}

	private void OpenClicked(Object sender, EventArgs e)
	{
		OpenFileDialog dialog = new OpenFileDialog();
		dialog.Filter =
			"All image files (*.bmp, *.jpg, *.png, *.gif, *.ico, *.cur)" +
			"|*.bmp;*.jpg;*.png;*.gif;*.ico;*.cur" +
			"|BMP files (*.bmp)|*.bmp" +
			"|JPEG files (*.jpg)|*.jpg" +
			"|PNG files (*.png)|*.png" +
			"|GIF files (*.gif)|*.gif" +
			"|Icon files (*.ico)|*.ico" +
			"|Cursor files (*.cur)|*.cur" +
			"|All files (*.*)|*.*";
		if(dialog.ShowDialog(this) == DialogResult.OK)
		{
			Bitmap image;
			try
			{
				image = new Bitmap(dialog.FileName);
			}
			catch(Exception)
			{
				MessageBox.Show
					(String.Format("Unknown image format for \"{0}\"",
								   dialog.FileName),
					 "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
				image = null;
			}
			if(image != null)
			{
				ImageWindow window = new ImageWindow
					(dialog.FileName, image);
				window.MdiParent = this;
				window.Visible = true;
			}
		}
	}

	private void QuitClicked(Object sender, EventArgs e)
	{
		Close();
	}

	protected override bool ProcessDialogKey(Keys keyData)
	{
		if(keyData == (Keys.Control | Keys.O))
		{
			OpenClicked(this, EventArgs.Empty);
			return true;
		}
		return base.ProcessDialogKey(keyData);
	}

	public static void Main(String[] args)
	{
		ImageViewer form = new ImageViewer();
		Application.Run(form);
	}

}

internal class ImageWindow : Form
{
	private Image image;

	public ImageWindow(String filename, Image image)
	{
		this.image = image;
		ClientSize = image.Size;
		Text = Path.GetFileName(filename);
	}

	protected override void OnPaint(PaintEventArgs args)
	{
		args.Graphics.DrawImage(image, 0, 0);
	}

}


Unhandled Exception: System.ArgumentException: '-2147483648' is not a
valid value for 'Value'. 'Value' should be between 'Minimum' and
'Maximum'
in <0x00163> System.Windows.Forms.ScrollBar:set_Value (Int32 value)
in (wrapper remoting-invoke-with-check)
System.Windows.Forms.ScrollBar:set_Value (int)
in <0x00131> System.Windows.Forms.MdiClient:CalcHBar (Int32 left, Int32
right, Int32 right_edge, Boolean vert_vis)
in <0x007d7> System.Windows.Forms.MdiClient:SizeScrollBars ()
in <0x0000a> System.Windows.Forms.MdiClient:FormLocationChanged
(System.Object sender, System.EventArgs e)
in (wrapper delegate-invoke)
System.MulticastDelegate:invoke_void_object_EventArgs
(object,System.EventArgs)
in <0x0002e> System.Windows.Forms.Control:OnLocationChanged
(System.EventArgs e)
in <0x0016a> System.Windows.Forms.Control:UpdateBounds (Int32 x, Int32
y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight)
in <0x00149> System.Windows.Forms.Control:UpdateBounds ()
in <0x00375> System.Windows.Forms.Control:WndProc
(System.Windows.Forms.Message m)
in <0x0000d> System.Windows.Forms.ScrollableControl:WndProc
(System.Windows.Forms.Message m)
in <0x0000d> System.Windows.Forms.ContainerControl:WndProc
(System.Windows.Forms.Message m)
in <0x00370> System.Windows.Forms.Form:WndProc
(System.Windows.Forms.Message m)
in <0x00014> System.Windows.Forms.Control+ControlNativeWindow:WndProc
(System.Windows.Forms.Message m)
in <0x0011e> System.Windows.Forms.NativeWindow:WndProc (IntPtr hWnd, Msg
msg, IntPtr wParam, IntPtr lParam)
in <0x00013> System.Windows.Forms.XplatUIX11:SendMessage (IntPtr hwnd,
Msg message, IntPtr wParam, IntPtr lParam)
in <0x0024e> System.Windows.Forms.XplatUIX11:SetVisible (IntPtr handle,
Boolean visible)
in <0x0001a> System.Windows.Forms.XplatUI:SetVisible (IntPtr handle,
Boolean visible)
in <0x0007d> System.Windows.Forms.Control:SetVisibleCore (Boolean value)
in <0x0000f> System.Windows.Forms.Form:SetVisibleCore (Boolean value)
in <0x00013> System.Windows.Forms.Control:set_Visible (Boolean value)
in (wrapper remoting-invoke-with-check)
System.Windows.Forms.Control:set_Visible (bool)
in <0x00144> ImageViewer:OpenClicked (System.Object sender,
System.EventArgs e)
in (wrapper delegate-invoke)
System.MulticastDelegate:invoke_void_object_EventArgs
(object,System.EventArgs)
in <0x0001d> System.Windows.Forms.MenuItem:OnClick (System.EventArgs e)
in <0x00010> System.Windows.Forms.MenuItem:PerformClick ()
in (wrapper remoting-invoke-with-check)
System.Windows.Forms.MenuItem:PerformClick ()
in <0x00377> System.Windows.Forms.MenuTracker:OnClick
(System.Windows.Forms.MouseEventArgs args)
in <0x00e61> System.Windows.Forms.Form:WndProc
(System.Windows.Forms.Message m)
in <0x00014> System.Windows.Forms.Control+ControlNativeWindow:WndProc
(System.Windows.Forms.Message m)
in <0x0011e> System.Windows.Forms.NativeWindow:WndProc (IntPtr hWnd, Msg
msg, IntPtr wParam, IntPtr lParam)
in <0x00016> System.Windows.Forms.XplatUIX11:DispatchMessage
(System.Windows.Forms.MSG msg)
in <0x00015> System.Windows.Forms.XplatUI:DispatchMessage
(System.Windows.Forms.MSG msg)
in <0x005fe> System.Windows.Forms.Application:RunLoop (Boolean Modal,
System.Windows.Forms.ApplicationContext context)
in <0x00024> System.Windows.Forms.Application:Run
(System.Windows.Forms.Form mainForm)
in <0x00024> ImageViewer:Main (System.String[] args)
<--8

-- 
"Logic, my dear Zoe, is merely the ability to be wrong with authority" -
Dr Who



More information about the Mono-winforms-list mailing list