C# 以新的表单c打开图像

C# 以新的表单c打开图像,c#,winforms,C#,Winforms,我有一个图像显示在 picShowPicture.Image = Image.FromFile(textbox1.Text) 当图像显示在主屏幕上时,我想要的是当用户从数据库中选择图像时,它会在新窗口中打开吗 这是如何做到的?在Designer中创建一个新表单,并在其中选择一个图片盒。例如,创建一个特殊的方法 public void SetPicture(Image image) 将图像设置为PictureBox 选择图片通话时: YourForm form = new YourForm(

我有一个图像显示在

picShowPicture.Image = Image.FromFile(textbox1.Text)
当图像显示在主屏幕上时,我想要的是当用户从数据库中选择图像时,它会在新窗口中打开吗


这是如何做到的?

在Designer中创建一个新表单,并在其中选择一个图片盒。例如,创建一个特殊的方法

public void SetPicture(Image image) 
将图像设置为PictureBox

选择图片通话时:

YourForm form = new YourForm();
form.SetPicture(Image.FromFile(textbox1.Text));
form.ShowDialog();
或者,您可以动态创建新表单:

Form form = new Form();

PictureBox pictureBox = new PictureBox();
pictureBox.Dock = DockStyle.Fill;
pictureBox.Image = Image.FromFile(textbox1.Text);
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
form.Controls.Add(pictureBox);

form.ShowDialog();

在Designer中创建一个新表单,并在其中选择一个PictureBox。例如,创建一个特殊的方法

public void SetPicture(Image image) 
将图像设置为PictureBox

选择图片通话时:

YourForm form = new YourForm();
form.SetPicture(Image.FromFile(textbox1.Text));
form.ShowDialog();
或者,您可以动态创建新表单:

Form form = new Form();

PictureBox pictureBox = new PictureBox();
pictureBox.Dock = DockStyle.Fill;
pictureBox.Image = Image.FromFile(textbox1.Text);
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
form.Controls.Add(pictureBox);

form.ShowDialog();

创建从System.Windows.Forms.Form派生的新表单新类型,该表单接受映像路径作为构造函数

说新形式是图像形式。在此窗体内创建PictureBox

在函数ShowImageWindow或类似的主窗体中,调用如下所示

ImageForm imageForm = new ImageForm(textbox1.Text)  
imageForm.ShowDialog()
在ImageForm的ctor中,将图像设置为ImageForm内的picturebox控件

 public ImageForm(String imagePath)
 {
   pictureBox1.Image = Image.FromFile(imagePath);
 }

创建从System.Windows.Forms.Form派生的新表单新类型,该表单接受映像路径作为构造函数

说新形式是图像形式。在此窗体内创建PictureBox

在函数ShowImageWindow或类似的主窗体中,调用如下所示

ImageForm imageForm = new ImageForm(textbox1.Text)  
imageForm.ShowDialog()
在ImageForm的ctor中,将图像设置为ImageForm内的picturebox控件

 public ImageForm(String imagePath)
 {
   pictureBox1.Image = Image.FromFile(imagePath);
 }
创建一个只包含图片框的新表单

然后,在形成该表单时,将图像作为参数传递当然,您必须创建表单的参数化构造函数,并在全局图像变量中传递该图像

在Form_Load中,将全局图像变量设置为图像控制图像

创建一个只包含图片框的新表单

然后,在形成该表单时,将图像作为参数传递当然,您必须创建表单的参数化构造函数,并在全局图像变量中传递该图像

在Form_Load中,将全局图像变量设置为图像控制图像


我将假设,通过从数据库中选择图像并不意味着您正在反序列化blob,而只是希望代码使图像显示在新窗口中。我将进一步假设您在项目中创建了第二个表单,名为Form2,其中包含一个名为PicImageViewerForm2的图像查看器

var newImage=Image.FromFiletextbox1.Text; var newForm=新Form2

newForm.picImageViewerOnForm2.Image=newImage;
newForm.Show

我将假设,通过从数据库中选择图像并不意味着您正在反序列化blob,只希望代码使图像显示在新窗口中。我将进一步假设您在项目中创建了第二个表单,名为Form2,其中包含一个名为PicImageViewerForm2的图像查看器

var newImage=Image.FromFiletextbox1.Text; var newForm=新Form2

newForm.picImageViewerOnForm2.Image=newImage;
newForm.Show

将名为ShowImageWindow的新Windows窗体添加到项目中。 将picturebox添加到窗口,并输入以下代码:

public Image ImageToShow { get; set; }


public ShowImageWindow()
{
    InitializeComponent();
}

private void ShowImageWindow_Load(object sender, EventArgs e)
{
    pictureBox1.Image = ImageToShow;
}
然后创建并显示窗口,如下所示:

Image img = Image.FromFile(textBox1.Text);
ShowImageWindow frm = new ShowImageWindow();
frm.ImageToShow = img;
frm.ShowDialog();
frm.Dispose();

将名为ShowImageWindow的新Windows窗体添加到项目中。 将picturebox添加到窗口,并输入以下代码:

public Image ImageToShow { get; set; }


public ShowImageWindow()
{
    InitializeComponent();
}

private void ShowImageWindow_Load(object sender, EventArgs e)
{
    pictureBox1.Image = ImageToShow;
}
然后创建并显示窗口,如下所示:

Image img = Image.FromFile(textBox1.Text);
ShowImageWindow frm = new ShowImageWindow();
frm.ImageToShow = img;
frm.ShowDialog();
frm.Dispose();

将表单添加到应用程序中并将PictureBox放在其上,假设PictureBox的ID为pictureBox1,然后在该表单上创建公共proterty以访问picutre box,如下所示:

public partial class ShowPictureForm : Form
{
  public PictureBox ImagePictureBox { get { return this.pictureBox1; } }

  public ShowPictureForm()
  {
    InitializeComponent();
  }
}
ShowPictureForm spf = new ShowPictureForm();
spf.ImagePictureBox.Image.FromFile(textbox1.Text)
spf.ShowDialog();
然后显示如下新形式:

public partial class ShowPictureForm : Form
{
  public PictureBox ImagePictureBox { get { return this.pictureBox1; } }

  public ShowPictureForm()
  {
    InitializeComponent();
  }
}
ShowPictureForm spf = new ShowPictureForm();
spf.ImagePictureBox.Image.FromFile(textbox1.Text)
spf.ShowDialog();

将表单添加到应用程序中并将PictureBox放在其上,假设PictureBox的ID为pictureBox1,然后在该表单上创建公共proterty以访问picutre box,如下所示:

public partial class ShowPictureForm : Form
{
  public PictureBox ImagePictureBox { get { return this.pictureBox1; } }

  public ShowPictureForm()
  {
    InitializeComponent();
  }
}
ShowPictureForm spf = new ShowPictureForm();
spf.ImagePictureBox.Image.FromFile(textbox1.Text)
spf.ShowDialog();
然后显示如下新形式:

public partial class ShowPictureForm : Form
{
  public PictureBox ImagePictureBox { get { return this.pictureBox1; } }

  public ShowPictureForm()
  {
    InitializeComponent();
  }
}
ShowPictureForm spf = new ShowPictureForm();
spf.ImagePictureBox.Image.FromFile(textbox1.Text)
spf.ShowDialog();

它加载了一个新表单,但没有图片。您可以添加一个新创建表单的代码及其创建和显示的代码吗?我刚刚从这个示例中直接复制,当我单击按钮时,一个新表单打开,里面没有任何内容。它加载了一个新表单,但没有图片。您可以添加一个新创建表单的代码及其创建的代码吗和显示。我刚刚直接从这个示例中复制,当我单击按钮时,一个新表单打开,里面没有任何内容。表示由于保护级别而无法访问。我在尝试其他示例时遇到此错误,是否需要更改一些设置?是否在表单上添加了picturebox?了解原因,进入设计器代码并将其更改为public说由于保护级别无法访问我在尝试其他示例时遇到此错误,是否需要更改某些设置?是否在窗体上添加了picturebox?找到原因,进入设计器代码并将其更改为public