急急急急!!!C#中,如果pictureBox1是在form1中,怎样在form2中调用pictureBox1?
要在form2中点完“确定”按钮后在form1中的pictureBox1显示画面Graphicsg=pictureBox1.CreateGraphics();Penpen...
要在form2中点完“确定”按钮后在form1中的pictureBox1显示画面
Graphics g = pictureBox1.CreateGraphics();
Pen pen = new Pen(Color.Red, 10.5f);
g.DrawLine(pen, p11, p12);
C#提示上下文中不存在pictureBox1,怎么办?
谢谢,感激不尽!!
怎么不让追问啊?
变成Form1.pictureBox1 还是不行,错误显示什么:“画图作业.Form1. pictureBox1要求对象引用”
还有Form1不被销毁是什么意思啊?我是个初学者,听不太懂。 展开
Graphics g = pictureBox1.CreateGraphics();
Pen pen = new Pen(Color.Red, 10.5f);
g.DrawLine(pen, p11, p12);
C#提示上下文中不存在pictureBox1,怎么办?
谢谢,感激不尽!!
怎么不让追问啊?
变成Form1.pictureBox1 还是不行,错误显示什么:“画图作业.Form1. pictureBox1要求对象引用”
还有Form1不被销毁是什么意思啊?我是个初学者,听不太懂。 展开
8个回答
展开全部
你的意思应该就是子窗口向父窗口传值吧,举个例子,比如你的form1肯定有一个事件是让from2显示出来比如
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ShowDialog();//这段代码是你显示窗口的地方,注意是ShowDialog(),而不是show
pictureBox1.ImageLocation = form.geturl;//这段代码是后边会说
}
你在from2中建一个全局变量,比如public string urll;
然后给from2写一个属性,估计你还没学过就跟建个函数差不多,只不过没()小括号,先这么理解吧;
public string geturl
{
get { return urll; }
}
在你的from2中的确定按钮为urll赋值,也就是你要传的值如
private void button1_Click(object sender, EventArgs e)
{
urll="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/logo-zhidao.gif";//为全局变量赋值
this.Close(); //关闭窗口
}
然后就回到上边的代码上了,在你新建from2就有了一个geturl的属性,并且值为你传的值。在你form2单击确定后,代码会走到form1新建form2对象的代码处,不信你可以调试试一下。看能不能给你启发
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ShowDialog();//这段代码是你显示窗口的地方,注意是ShowDialog(),而不是show
pictureBox1.ImageLocation = form.geturl;//这段代码是后边会说
}
你在from2中建一个全局变量,比如public string urll;
然后给from2写一个属性,估计你还没学过就跟建个函数差不多,只不过没()小括号,先这么理解吧;
public string geturl
{
get { return urll; }
}
在你的from2中的确定按钮为urll赋值,也就是你要传的值如
private void button1_Click(object sender, EventArgs e)
{
urll="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/logo-zhidao.gif";//为全局变量赋值
this.Close(); //关闭窗口
}
然后就回到上边的代码上了,在你新建from2就有了一个geturl的属性,并且值为你传的值。在你form2单击确定后,代码会走到form1新建form2对象的代码处,不信你可以调试试一下。看能不能给你启发
展开全部
Application.OpenForms[i].pictureBox1;
这样可以调用。
Application.OpenForms是指本次应用程序打开的Form的集合,具体后面是OpenForm还是OpenForms我也记不大清楚了,反正就是这两个。
OpenForm[i]中的"i"是指你打开的第i各窗口是form1,如果实在不知道是第几个,就从0开始试好了,窗口数肯定不是很多吧。
楼上说的Form1不被销毁意思是打开form2的时候form1不被close()了,如果打开form2的时候执行了form1.Close(),建议改成form1.Hide()。
不过我觉得应该是不会写Close()。因为对于一个初学者,form1的关闭基本上标志整个程序的结束。
这样可以调用。
Application.OpenForms是指本次应用程序打开的Form的集合,具体后面是OpenForm还是OpenForms我也记不大清楚了,反正就是这两个。
OpenForm[i]中的"i"是指你打开的第i各窗口是form1,如果实在不知道是第几个,就从0开始试好了,窗口数肯定不是很多吧。
楼上说的Form1不被销毁意思是打开form2的时候form1不被close()了,如果打开form2的时候执行了form1.Close(),建议改成form1.Hide()。
不过我觉得应该是不会写Close()。因为对于一个初学者,form1的关闭基本上标志整个程序的结束。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的做法,把form1作为新form2的参数传进去,就行了
就是说:新建窗体f2,不修改时,是 f2=new Form2(),现在改成,f2 =new Form2(this)
在Form2类中定义一个Form1类型的变量,操作就可以了
就是说:新建窗体f2,不修改时,是 f2=new Form2(),现在改成,f2 =new Form2(this)
在Form2类中定义一个Form1类型的变量,操作就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:将form1中的pictrueBox1设置成public
方法二:将form1作为form2的属性成员,创建form2后在show之前将form1赋值给form2
方法二:将form1作为form2的属性成员,创建form2后在show之前将form1赋值给form2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确定按钮的单击事件()
{
pictureBox1.Image = Image.FromFile("images/" + pic);
Form2 f2 = new Form2();
f2.pictureBox1.Image = this.pictureBox1.image;
}
{
pictureBox1.Image = Image.FromFile("images/" + pic);
Form2 f2 = new Form2();
f2.pictureBox1.Image = this.pictureBox1.image;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询