我的功能是从所选文件夹加载图片。现在我想通过以新形式打开它来缩放这张图片 - ZoomLogo。在这个新的表单中,我想从我的主窗体中“获取”fullPath1,然后使用此路径以ZoomLogo形式加载图片。怎么做?
void Picture()
{
...
if (DataBaseSelection.SelectedIndex+1==1)
{
Logo1_pictureBox.Image=new Bitmap(@"Logos\\aa.bmp");
var file1 = Path.ChangeExtension(Printer2_TextBox.Text, ".jpg");
var fullPath1 = Path.Combine(@"Documents\\Base\\", file1);
if (!File.Exists(fullPath1))
{
MessageBox.Show("No picture!");
}
else
{
Logo_pictureBox.Image = new Bitmap(fullPath1);
}
...
}
打开新表单:
void ZoomPictureBoxClick(object sender, EventArgs e)
{
ZoomSchematic settings = new ZoomSchematic();
settings.ShowDialog();
}
我试图在我的主要形式中使用类似的东西:
void ZoomPictureBoxClick(object sender, EventArgs e)
{
ZoomSchematic settings = new ZoomSchematic(this.fullPath1);
settings.ShowDialog();
}
但我不知道如何从函数Picture()..
获取此变量答案 0 :(得分:0)
如果你真的要放大,为什么不发送图片而不是重新加载图片?例如,
void ZoomPictureBoxClick(Bitmap zoomthis)
{
...
}
因为这仍然在你的表格中,例如
ZoomSchematic settings = new ZoomSchematic(Logo_pictureBox.Image)
这取决于你想要用它做什么,如果你只是要显示设置,我想这取决于你需要路径的原因。
有点像vauge的答案,但我觉得这个问题可以提出更多问题。
如果您需要稍后发送的路径,那么当您创建位图时,您可以/应该保持路径。而不是局部变量。
答案 1 :(得分:0)
使用表单构造函数传递文件路径
Form2 form2 = new Form2(string path);
Form2.ShowDialog();
答案 2 :(得分:0)
这取决于Picture()
做什么以及它被称为什么......如果图片向您的主表单提供了多张图片,您将需要理清哪个是相关图片...
如果它只是一张图片,你可以简单地在表单中添加一个新的私有字符串成员fullpath1,每次调用Picture()
时都必须设置它...
答案 3 :(得分:0)
只需将fullPath1
作为主表单的成员字段。
class MainForm
{
private string fullPath1;
void Picture()
{
if (DataBaseSelection.SelectedIndex+1==1)
{
Logo1_pictureBox.Image=new Bitmap(@"Logos\\aa.bmp");
var file1 = Path.ChangeExtension(Printer2_TextBox.Text, ".jpg");
fullPath1 = Path.Combine(@"Documents\\Base\\", file1);
if (!File.Exists(fullPath1))
{
MessageBox.Show("No picture!");
}
else
{
Logo_pictureBox.Image = new Bitmap(fullPath1);
}
}
}
void ZoomPictureBoxClick(object sender, EventArgs e)
{
ZoomSchematic settings = new ZoomSchematic(this.fullPath1);
settings.ShowDialog();
}
}
class ZoomSchematic
{
string _fullPath1;
public ZoomSchematic(string fullPath1)
{
_fullPath1 = fullPath1;
}
}