我有一张图片显示在
picShowPicture.Image = Image.FromFile(textbox1.Text)
目前图像显示在主屏幕上我想要的是当用户从数据库中选择图像时,它会在新窗口中打开?
这是怎么做的?
在 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();
我将假设“从数据库中选择图像”并不意味着您正在(反)序列化 BLOB,而只是希望代码使图像显示在新窗口中。我将进一步假设您在项目中创建了第二个表单,名为“Form2”,并带有一个名为“picImageViewerOnForm2”的图像查看器。
var newImage = Image.FromFile(textbox1.Text);
var newForm = new Form2();
newForm.picImageViewerOnForm2.Image = newImage;
newForm.Show();
将Form添加到应用程序并在其上放置PictureBox,假设PictureBox的ID为“pictureBox1”,然后在该表单上创建公共属性以访问picutre框,如下所示:
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();
将一个名为“ShowImageWindow”的新 Windows 窗体添加到您的项目中。在窗口中添加一个图片框,代码如下:
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();
创建一个接受图像路径作为构造函数的新表单(从 System.Windows.Forms.Form 派生的新类型)。
说新形式是 ImageForm。在此表单内创建 PictureBox。
在函数 ShowImageWindow (或类似的主窗体)中,调用如下
ImageForm imageForm = new ImageForm(textbox1.Text)
imageForm.ShowDialog()
在ImageForm的ctor中,将Image设置为ImageForm里面的picturebox控件
public ImageForm(String imagePath)
{
pictureBox1.Image = Image.FromFile(imagePath);
}
创建一个只有图片框的新表单。
然后在形成该表单对象时,将图像作为参数传递(当然,您必须创建表单的参数化构造函数)并将该图像传递到全局图像变量中。
在 Form_Load 中,将该全局图像变量设置为您的图像控制图像。