c#里怎么引用form1中listview2里面的items用到form2里去
c#里怎么引用form1中listview2里面的items用到form2里去拜托各位高手给我解答 --------------------编程问答-------------------- form2定义ListViewItem属性,form1把item传过去 --------------------编程问答-------------------- form1的listview属性public
form1打开form2的时候将自己作为参数传递如:
Form2 f2=new Form2(this);
f2.show();
然后在form2中就可以直接调用form1上的属性为public的控件了:
form2的构造函数加上:
Form1 f1=new Form1();
public Form2(Form1 _f1)
{
f1=_f1;
InitializeComponent();
}
然后你可以用f1.listview1来直接操作form1上的控件了,就和在form2上的控件一样
这就是窗体间传递参数 --------------------编程问答-------------------- 属性,public方法,委托,应该都可以满足你的要求。 --------------------编程问答-------------------- 窗体就是一个对象,要给一个对象的属性取值赋值这个总知道吧! --------------------编程问答-------------------- 把listview的属性改成Public,然后
--------------------编程问答-------------------- 设置可读属性,最简单的方法 --------------------编程问答-------------------- lovejiaqi同学:Form2 f2=new Form2(this);这句不对啊 打进去之后,运行不了,系统提示“form2不包含采用“0”个参数的构造函数” --------------------编程问答--------------------
//form1里
form2 fm2 = new form2();
fm2.show(this);
//form2里
form1 fm1 = (form1)this.owner;
//接下来用fm1.listview.items调用就行了
这么写。。
Form2 f2=new Form2();
f2.show(this); --------------------编程问答--------------------
我明白了。。你是不是把参数为空的那个构造函数改成参数是form1的构造函数了?form2里应该写两个构造函数。。
public Form2(Form1 _f1)
{
f1=_f1;
InitializeComponent();
}
public Form2()
{
InitializeComponent();
} --------------------编程问答-------------------- 不是的啊:
Form1窗体打开Form2的方法可以这样写:
//打开Form2的方法
private void 打开Form2_btn_Click(object sender, EventArgs e)
{
//这里将Form1窗体作为参数传递,这样在Form2可以访问Form1窗体所有Public属性的控件
Form2 f2 = new Form2(this);
f2.ShowDialog();
//或者f2.Show();
}
在Form2窗体中这样写就行了
public partial class Form2 : Form
{
Form1 f1 = new Form1();
public Form2(Form1 _f1)
{
f1 = _f1;
InitializeComponent();
}
我测试肯定没问题的,我都是这么写,你看看你哪里写错了? --------------------编程问答--------------------
那怎么把form1里listview2的东西复制到form2的listview1去啊? --------------------编程问答--------------------
百度下,窗体间的传值:
方法一:
在form2构造一个方法:
FORM2:
//构造方法
public LisView lv
{
get;
set;
}
//窗体登录时候加载
private void Form2_Load(object sender, EventArgs e)
{
foreach (ListViewItem item in lv.Items)
{
listview1.Items.Add((ListViewItem)item.Clone());
}
}
FORM1:
Form2 fm2=new Form2();
fm2.lv=listviw2;
fm2.ShwDialog(this);
方法二:
写一个代码文件,CF.cs,在里面定义一个泛型用来保存 form1的listview2
pubic static list<ListView> list1=new list<ListView>();
form1:
CF.list1.clear();
Form2 fm2=new Form2();
CF.list1.add(listview2);
fm2.ShwDialog(this);
form2:
private void Form2_Load(object sender, EventArgs e)
{
if (CF.list1.Count > 0)
{
foreach (ListViewItem item in CF.list1[0].Items)
{
listview1.Items.Add((ListViewItem)item.Clone());
}
}
}
--------------------编程问答-------------------- 结贴吧 - -
补充:.NET技术 , C#