C# WINFORM 弹出窗口一般都要新建一个Form类吗?
如题,我打算做个弹出窗口,是一些配置信息的设置,一般来说弹出窗口都要新new一个form吗?请教两个类传值有点麻烦,除了构造函数,有什么简便方法吗?newform.Own...
如题,我打算做个弹出窗口,是一些配置信息的设置,
一般来说 弹出窗口都要新new 一个form吗?
请教
两个类传值有点麻烦,除了构造函数,有什么简便方法吗?
newform.Owner是什么?有什么效果? 展开
一般来说 弹出窗口都要新new 一个form吗?
请教
两个类传值有点麻烦,除了构造函数,有什么简便方法吗?
newform.Owner是什么?有什么效果? 展开
4个回答
展开全部
1.不需要。单体模式可以解决重复new对象的过程。
假如你希望一个窗口只存在一个,那你不断的new,那一定是不断创建新的对象,结果只能是多窗口同时显示。单体模式将只返回一个唯一对象,这个对象由类的内部产生,而不是外部创建。
2.不理解你为什么说构造函数传值会麻烦,这明明是最简单的传值方法。当然,除了构造函数,为类创建属性,也可以传值。当然,最灵活的方式是委托,为属性的Set方法创建一个委托事件。当赋值时,即刻触发注册此事件的方法,便可使用新值。
3.form.Owner用于指定窗体的父窗体,当你的窗体以对话框方式显示,可以指定此对话框的所有者。当点击次所有者窗体时,页面会被激活到对话框窗体上。
假如你希望一个窗口只存在一个,那你不断的new,那一定是不断创建新的对象,结果只能是多窗口同时显示。单体模式将只返回一个唯一对象,这个对象由类的内部产生,而不是外部创建。
2.不理解你为什么说构造函数传值会麻烦,这明明是最简单的传值方法。当然,除了构造函数,为类创建属性,也可以传值。当然,最灵活的方式是委托,为属性的Set方法创建一个委托事件。当赋值时,即刻触发注册此事件的方法,便可使用新值。
3.form.Owner用于指定窗体的父窗体,当你的窗体以对话框方式显示,可以指定此对话框的所有者。当点击次所有者窗体时,页面会被激活到对话框窗体上。
展开全部
如果您说得是弹出窗口,那么的确如此
new form2 = New Form2();
form2.ShowDialog();
form2.Dispose();
注:
ShowDialog()显示模式窗体
Show()显示非模式窗体
根据具体情况使用
补充:
传递参数不麻烦啊,例如在From2中有个属性
private string _truename = string.Empty;
/// <summary>
/// 真实姓名。
/// </summary>
Public string TrueName
{
get { return _truename; }
set { _truename = value; }
}
在From1中,可以这样传递
new form2 = New Form2();
form2.TrueName = "刘德华";
form2.ShowDialog();
form2.Dispose();
再或者,参数可以用数据库或者配置文件保存,不存在传递问题
new form2 = New Form2();
form2.ShowDialog();
form2.Dispose();
注:
ShowDialog()显示模式窗体
Show()显示非模式窗体
根据具体情况使用
补充:
传递参数不麻烦啊,例如在From2中有个属性
private string _truename = string.Empty;
/// <summary>
/// 真实姓名。
/// </summary>
Public string TrueName
{
get { return _truename; }
set { _truename = value; }
}
在From1中,可以这样传递
new form2 = New Form2();
form2.TrueName = "刘德华";
form2.ShowDialog();
form2.Dispose();
再或者,参数可以用数据库或者配置文件保存,不存在传递问题
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个类传值:你可以设置一个public static 的变量,这样就可以直接用“窗体类.变量名”来访问了,注意:变量的初值一定要在构造函数里面设置
newform.Owner是指明弹窗的父窗体
这样可以通过“newform.Owner.父窗体的变量名”来访问父窗体的变量
newform.Owner是指明弹窗的父窗体
这样可以通过“newform.Owner.父窗体的变量名”来访问父窗体的变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般来说你的新建一个form1
然后form1 newform1 = new form1();
nenewform1.Owner = this;
nenewform1.Show();
就行了
然后form1 newform1 = new form1();
nenewform1.Owner = this;
nenewform1.Show();
就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询