表单 ShowDialog 不会在图片框中加载图像
Form ShowDialog won't load image in picture box
当我使用 SHOWDIALOG 刷新我的表单时,我的图片没有加载到我的图片框中,但如果我仅使用 SHOW 刷新它,它工作正常。
我希望能够使用 SHOWDIALOG 刷新并且我的图片加载方法仍然有效。
我已经尝试清除图片框和眉毛按钮的数据绑定。
private void formrefresh()
{
FoodItem FoodItem = new FoodItem();
FoodItem.ShowDialog();
this.Close();
}
public void GetImage()
{
OpenFileDialog BrowseImage = new OpenFileDialog();
BrowseImage.Filter = "Image Files(*.jpg; *.gif;)|*.jpg; *.gif";
if (BrowseImage.ShowDialog() == DialogResult.OK)
{
TextBox t =
Application.OpenForms["FoodItem"].Controls["imagePath"] as TextBox;
t.Text = BrowseImage.FileName;
filenametext = BrowseImage.FileName;
PictureBox p = Application.OpenForms["FoodItem"].Controls["foodImage"] as PictureBox;
p.Image = new Bitmap(BrowseImage.FileName);
}
}
private void BrowsImage_Click(object sender, EventArgs e)
{
GetFoodImage image = new GetFoodImage();
image.GetImage();
}
查找表单 (Application.OpenForms
) 不是一个很好的使用方法。如果可能,尽量避免这种情况。例如,如果某个表单有多个实例,则可能会出现复杂情况,您将必须找到要更新的确切实例。
在您的示例中使用库来获取图像没有多大意义。如果您确实需要在单独的 Class 库中使用它,只需 return 路径即可。只需 return GetImage 方法中的图像路径并从 FoodImage 中设置 PictureBox。
private void formrefresh()
{
FoodItem foodItem = new FoodItem();
foodItem.ShowDialog();
this.Close();
}
private void BrowsImage_Click(object sender, EventArgs e)
{
GetFoodImage image = new GetFoodImage();
var imagePath = image.GetImage();
this.foodImage.Image = new Bitmap(imagePath);
this.imagePath.Text = imagePath;
}
public string GetImage(FoodItem foodItem)
{
OpenFileDialog BrowseImage = new OpenFileDialog();
BrowseImage.Filter = "Image Files(*.jpg; *.gif;)|*.jpg; *.gif";
if (BrowseImage.ShowDialog() == DialogResult.OK)
{
return BrowseImage.FileName;
}
return "";
}
当我使用 SHOWDIALOG 刷新我的表单时,我的图片没有加载到我的图片框中,但如果我仅使用 SHOW 刷新它,它工作正常。
我希望能够使用 SHOWDIALOG 刷新并且我的图片加载方法仍然有效。
我已经尝试清除图片框和眉毛按钮的数据绑定。
private void formrefresh()
{
FoodItem FoodItem = new FoodItem();
FoodItem.ShowDialog();
this.Close();
}
public void GetImage()
{
OpenFileDialog BrowseImage = new OpenFileDialog();
BrowseImage.Filter = "Image Files(*.jpg; *.gif;)|*.jpg; *.gif";
if (BrowseImage.ShowDialog() == DialogResult.OK)
{
TextBox t =
Application.OpenForms["FoodItem"].Controls["imagePath"] as TextBox;
t.Text = BrowseImage.FileName;
filenametext = BrowseImage.FileName;
PictureBox p = Application.OpenForms["FoodItem"].Controls["foodImage"] as PictureBox;
p.Image = new Bitmap(BrowseImage.FileName);
}
}
private void BrowsImage_Click(object sender, EventArgs e)
{
GetFoodImage image = new GetFoodImage();
image.GetImage();
}
查找表单 (Application.OpenForms
) 不是一个很好的使用方法。如果可能,尽量避免这种情况。例如,如果某个表单有多个实例,则可能会出现复杂情况,您将必须找到要更新的确切实例。
在您的示例中使用库来获取图像没有多大意义。如果您确实需要在单独的 Class 库中使用它,只需 return 路径即可。只需 return GetImage 方法中的图像路径并从 FoodImage 中设置 PictureBox。
private void formrefresh()
{
FoodItem foodItem = new FoodItem();
foodItem.ShowDialog();
this.Close();
}
private void BrowsImage_Click(object sender, EventArgs e)
{
GetFoodImage image = new GetFoodImage();
var imagePath = image.GetImage();
this.foodImage.Image = new Bitmap(imagePath);
this.imagePath.Text = imagePath;
}
public string GetImage(FoodItem foodItem)
{
OpenFileDialog BrowseImage = new OpenFileDialog();
BrowseImage.Filter = "Image Files(*.jpg; *.gif;)|*.jpg; *.gif";
if (BrowseImage.ShowDialog() == DialogResult.OK)
{
return BrowseImage.FileName;
}
return "";
}