我正在研究vb(或c#)。 例如,我有三个不同设计的类。 主设计的第1类具有从设备接收数据的功能,该功能将数据作为数组返回。 第二种设计的第2类调用第1类中的函数来存储和显示列表视图中的数据。 我想输出并使用第三个设计师中第二个设计师类的列表视图的数据。 总而言之,第1类获取数据,第2类调用第1类并将数据输出到listview。 Class 3尝试使用class 2的listview数据。 我的意图完全通过了吗?对不起,我的英语不好。 感谢您的关注! :)
答案 0 :(得分:0)
您的headers
应保留原始格式的数据(例如字符串列表),应使用此列表在class2
上显示数据,并将此数据公开给listview
我已经创建了一个示例程序,展示了如何做到这一点!
我们可以采用三种形式class3
,Form1
和Form2
Form3
(class1):这将包含我们需要在Form1
listview
上显示的实际数据,我们还需要将此信息传递给Form2
通过Form3
Form2
public partial class Form1 : Form
{
//Data which need to be shown in list view
//and also need to pass to form3 (class3)
public List<string> Data = new List<string>();
public Form1()
{
InitializeComponent();
Data.Add("item1");
Data.Add("item2");
}
private void btnForm2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show();
}
}
(第2课):此类将Form2
的数据保存为原始格式(此处为字符串列表),因此不必将整个Form1
公开listview
。
你知道,Form3
只需要数据,而不是对它的显示进行控制,因此最好不要让外部代码无法控制(form3
)。
listview
并且最后public partial class Form2 : Form
{
Form1 m_form1;
List<string> m_dataOfListview;
//exposing row data publically so form3 can use it
//note that, it is read only, so form3 can only read it. Not modify
public List<string> DataOfListView
{
get { return m_dataOfListview; }
}
public Form2(Form1 form1)
{
InitializeComponent();
m_form1 = form1;
}
private void btnFetchData_Click(object sender, EventArgs e)
{
m_dataOfListview = m_form1.Data;
foreach(string data in m_dataOfListview)
listView1.Items.Add(data);
}
private void btnShowForm3_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3(this);
form3.Show();
}
}
(3级)
Form3