C# 有两个窗体Form1,Form2 在Form1中使用 Form2 sp=new Form2(); 语句后 为什么操作sp无法实现更改Form2中

急求解答能告诉我窗体间怎么相互调用和更改定义为Public的变量值也行... 急求解答
能告诉我窗体间怎么相互调用和更改定义为Public的变量值也行
展开
 我来答
老冯文库
2011-06-03 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
你想在窗体Form1中改变窗体Form2中的内容,可以这样做:
(1)将窗体Form2中需要被修改的内容设置为public或public static;
(2)在Form2类中增加打开Form1窗体的语句;
(3)在窗体Form1类中定义Form2窗体变量,作为Form1的成员;
(4)修改Form1的构造方法,增加初始化Form2窗体变量的语句;
(5)在Form1窗体的任何有效范围内,通过修改Form2窗体变量的值来达到修改Form2窗体的目的。

例:
class Form2 : Form{//FrmMain
...

public TextBox txtUserName; (1)
...

public ..._Click(...)
{
Form1 frm = new Form1(this);
frm.Show(); (2)
...
}
}

class Form1 : Form{//FrmLogin
private Form2 frmParent; (3)

public Form1(Form2 frmParent)
{
...
this.frmParent = frmParent; (4)
}

public ..._Click(...)
{
frmParent.txtUserName = "新用户名"; (5)
}
...
}

你这样情况常见于查找替换、登录等功能的实现。
ittiamot
2011-06-03 · 超过18用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50.1万
展开全部
在form1中:
Form2 sp=new Form2();
sp.show(); // 打开from窗体
sp.person = "张三" // person 是form2中的变量,给变量赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengliwf
2011-06-03
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
Form2中定义的应该是public的属性和方法吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e618f23
2011-06-03 · 超过75用户采纳过TA的回答
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:132万
展开全部
你的意思 是form1 和form2都显示着,你需要从form1操作form2对吧?
如果是这样的话,你用了form2 sp=new form2()
得到的资源是 sp 是一个重新初始化的form2,并不是显示着的那个form2.所以你的操作根本不是对显示着得那个form2进行操作。
建议你仔细研究一下这个new 关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式