C#中checkbox或者checkedlistbox在别的窗体下获得不到,如何传递?
C#中主窗体下checkbox或者checkedlistbox在别的窗体下获得不到,如何传递呢?要求能读能写。谢谢...
C#中主窗体下checkbox或者checkedlistbox在别的窗体下获得不到,如何传递呢?要求能读能写。谢谢
展开
4个回答
展开全部
所谓你的问题其实就是跨窗体控件赋值问题 。实质上它是利用窗体的重载来实现的。通俗的如下:
如主窗体为form1 子窗体为form2 现在我们要做的是通过子窗体给主窗体form1中的一个checkbox.name 赋值
如下
首先我们要让checkbox的可见性为public
接下来
form2中实例化一个form1
如下
首先在form2中申请一个form1样式的内存空间 取名Myform(注意此时只是一个内存中的控件 还没被实例化)
public form1 Myform =null;
然后创建一个实例化它的方法 方法名为 Getform
如下:
public void Getform(form1 f)
(
Myform=f;
)
现在我们就可以写我们的代码了
首先在从form1跳转到form2时在form2中实力化form1(通过Getform()方法)
代码
form2 f2=new form2();
f2.Getform(this);
f2.show();
下面是在form2中给form1控件传值的代码:
Myform.checkbox.name=this.textbox1.text;
OK!
--------------------------------------------
代码有点混乱 我没有装vs
所以就已.name这个属性为例子 请换之。
不懂来我请看本人空间例子
http://hi.baidu.com/%BE%F3%C7%BF%C2%EC%D2%CF/blog/item/a2e08d1258558adcf7039ee8.html
如主窗体为form1 子窗体为form2 现在我们要做的是通过子窗体给主窗体form1中的一个checkbox.name 赋值
如下
首先我们要让checkbox的可见性为public
接下来
form2中实例化一个form1
如下
首先在form2中申请一个form1样式的内存空间 取名Myform(注意此时只是一个内存中的控件 还没被实例化)
public form1 Myform =null;
然后创建一个实例化它的方法 方法名为 Getform
如下:
public void Getform(form1 f)
(
Myform=f;
)
现在我们就可以写我们的代码了
首先在从form1跳转到form2时在form2中实力化form1(通过Getform()方法)
代码
form2 f2=new form2();
f2.Getform(this);
f2.show();
下面是在form2中给form1控件传值的代码:
Myform.checkbox.name=this.textbox1.text;
OK!
--------------------------------------------
代码有点混乱 我没有装vs
所以就已.name这个属性为例子 请换之。
不懂来我请看本人空间例子
http://hi.baidu.com/%BE%F3%C7%BF%C2%EC%D2%CF/blog/item/a2e08d1258558adcf7039ee8.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
checkbox或者checkedlistbox都有Medify的属性,就是访问修饰符,可以有public, internal,private,protected,换下就可以了。当然,想让代码更好,封装一下,直接把控件给出去不太好的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以包装成一个类,做为全局变量实用。
也可以在构造新窗口的时候把值传过去。
下面这个是伪代码,不能运行,我手写的
class form()
{
private void button_click(send, e)
{
//初始化新窗口的时候传递这个控件的状态
newform nf = new newform(checkbox.Checked);
}
}
class newform()
{
private bool isChecked = false;
//这是个构造函数
//这个bool 类型的就是你的checkbox 的状态
newform(bool ischecked)
{
//赋值以后,这个值就可以被你在这个窗体内应用了
this.isChecked = ischecked;
}
}
也可以在构造新窗口的时候把值传过去。
下面这个是伪代码,不能运行,我手写的
class form()
{
private void button_click(send, e)
{
//初始化新窗口的时候传递这个控件的状态
newform nf = new newform(checkbox.Checked);
}
}
class newform()
{
private bool isChecked = false;
//这是个构造函数
//这个bool 类型的就是你的checkbox 的状态
newform(bool ischecked)
{
//赋值以后,这个值就可以被你在这个窗体内应用了
this.isChecked = ischecked;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form1,form2
第一个窗体中
string text="xxxx";
form2 f=new form2(text);
在from2中
添加添加这个方法
public string str;
public from2 (string text)
{
str=text;
InitializeComponent();
}
第一个窗体中
string text="xxxx";
form2 f=new form2(text);
在from2中
添加添加这个方法
public string str;
public from2 (string text)
{
str=text;
InitializeComponent();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询