我有Form1
个pictureBox1
和双击事件:
private void pictureBox1_DoubleClick_1(object sender, EventArgs e)
{
pb1_fs = new Picturebox1_Fullscreen();
pictureBox1.Enabled = true;
g = last_image_file();
nf = sf + @"\radar" + g.ToString("D6") + ".gif";
lf = nf;
pb1_fs.WindowState = FormWindowState.Maximized;
pb1_fs.Show();
pb1_fs.picturebox1(pictureBox1);
pb1_fs.FormClosing += new FormClosingEventHandler(pb1_fs_FormClosing);
}
这应该打开/显示新表单pb1_fs
我之前没有像现在这样的问题。
问题是,一旦我双击pictureBox1
,有时会发生,有时候我没有
ArgumentException参数无效。
我不确定问题出在哪里,因为它停在的行并抛出异常在Program.cs
上:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace mws
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (IsApplicationAlreadyRunning() == true)
{
MessageBox.Show("The application is already running");
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
static bool IsApplicationAlreadyRunning()
{
string proc = Process.GetCurrentProcess().ProcessName;
Process[] processes = Process.GetProcessesByName(proc);
if (processes.Length > 1)
{
return true;
}
else
{
return false;
}
}
}
}
停止并在}
这是第二次}
结束。
Application.Run(new Form1());
}
}
异常完整消息是:
System.ArgumentException未处理
的HResult = -2147024809
消息=参数无效 来源= System.Drawing中
堆栈跟踪:
在System.Drawing.Image.get_RawFormat()
在System.Drawing.Graphics.DrawImage(图像,Int32 x,Int32 y,Int32宽度,Int32高度)
在System.Drawing.Graphics.DrawImage(图像,矩形矩形)
在System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
在System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e,Int16 layer)
在System.Windows.Forms.Control.WmPaint(Message&amp; m)
在System.Windows.Forms.Control.WndProc(Message&amp; m)
在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(消息&amp; m)
在System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息&amp; m)
在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)
问题是导致异常的原因以及在form1上双击事件的内部?或者可能是新形式的pb1_fs构造函数?如何查看问题所在?
我可以在这里添加pb1_fs表单的构造函数代码,但它很长。
编辑:
这是新表格中的方法picturebox1。 在Form1中的行:
pb1_fs.picturebox1(pictureBox1);
将pictureBox1从Form1传递到新表单,因此在新表单中我可以使用并显示form1 pictureBox1中的当前图像。
public PictureBox picturebox1(PictureBox pb1)
{
pictureBox1.Image = pb1.Image;
return pictureBox1;
}
答案 0 :(得分:0)
我不知道错误是什么,但会尝试移动此行
pb1_fs.Show();
所有其他初始化代码后。
答案 1 :(得分:0)
我认为问题在于:
public PictureBox picturebox1(PictureBox pb1)
{
pictureBox1.Image = pb1.Image;
return pictureBox1;
}
我认为您需要克隆该图像,因此您不会在2个不同的UI元素中使用该图像的一个实例。将代码替换为:
public PictureBox picturebox1(PictureBox pb1)
{
pictureBox1.Image = pb1.Image.Clone();
return pictureBox1;
}
我还会在
下移动 Show()方法pb1_fs.FormClosing += new FormClosingEventHandler(pb1_fs_FormClosing);
这一行