C# 有两个窗体Form1,Form2 在Form1中使用 Form2 sp=new Form2(); 语句后 为什么操作sp无法实现更改Form2中
展开全部
你想在窗体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)
}
...
}
你这样情况常见于查找替换、登录等功能的实现。
(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)
}
...
}
你这样情况常见于查找替换、登录等功能的实现。
展开全部
在form1中:
Form2 sp=new Form2();
sp.show(); // 打开from窗体
sp.person = "张三" // person 是form2中的变量,给变量赋值
Form2 sp=new Form2();
sp.show(); // 打开from窗体
sp.person = "张三" // person 是form2中的变量,给变量赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form2中定义的应该是public的属性和方法吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思 是form1 和form2都显示着,你需要从form1操作form2对吧?
如果是这样的话,你用了form2 sp=new form2()
得到的资源是 sp 是一个重新初始化的form2,并不是显示着的那个form2.所以你的操作根本不是对显示着得那个form2进行操作。
建议你仔细研究一下这个new 关键字
如果是这样的话,你用了form2 sp=new form2()
得到的资源是 sp 是一个重新初始化的form2,并不是显示着的那个form2.所以你的操作根本不是对显示着得那个form2进行操作。
建议你仔细研究一下这个new 关键字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询