无法在函数中添加 ListViewItem
Can't add ListViewItem in function
我写了一个由 2 个表单构建的代码,
主窗体 - (Form1
) 从子窗体 (AddTask
)
获取 3 个字符串
主要形式:
public partial class Form1 : Form
{
int count = 0;
string taskName2, DateTime2, More2;
public Form1(string taskName1, string DateTime1, string More1, bool startworking)
{
InitializeComponent();
taskName2 = taskName1;
DateTime2 = DateTime1;
More2 = More1;
if(startworking)
{
StartWorking();
}
}
你可以看到我创建了 3 个字符串供全局使用,Form1 得到了 3 个字符串和 1 个布尔变量。当布尔值为真时,函数 StartWorking
开始。
在子表单中我有一个按钮和 3 个文本框。按钮有点击事件:
string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form celender = new Form1(taskName1, DateTime1, More1, true);
this.Close();
因此,当我按下子表单上的按钮时,布尔值设置为 true 并且 StartWorking
函数启动。
至此一切正常。
函数 StartWorking:
public void StartWorking()
{
MessageBox.Show(taskName2 + " " + DateTime2 + " " + More2);
ListViewItem lvi = new ListViewItem(taskName2);
lvi.SubItems.Add(DateTime2);
lvi.SubItems.Add(More2);
listView1.Items.Add(lvi);
}
现在在函数中 MessageBox 工作并显示字符串,但是当我看到 listview1 时没有任何变化。为什么它不创建任何东西?
实例化后没有显示Form1
。使用 Show()
方法 celender.Show();
显示 Form1
并像这样更改您的代码:
Hide();
string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form1 celender = new Form1(taskName1,DateTime1,More1,true);
celender.Show();
celender.Closed += (s, args) => this.Close();
我写了一个由 2 个表单构建的代码,
主窗体 - (Form1
) 从子窗体 (AddTask
)
主要形式:
public partial class Form1 : Form
{
int count = 0;
string taskName2, DateTime2, More2;
public Form1(string taskName1, string DateTime1, string More1, bool startworking)
{
InitializeComponent();
taskName2 = taskName1;
DateTime2 = DateTime1;
More2 = More1;
if(startworking)
{
StartWorking();
}
}
你可以看到我创建了 3 个字符串供全局使用,Form1 得到了 3 个字符串和 1 个布尔变量。当布尔值为真时,函数 StartWorking
开始。
在子表单中我有一个按钮和 3 个文本框。按钮有点击事件:
string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form celender = new Form1(taskName1, DateTime1, More1, true);
this.Close();
因此,当我按下子表单上的按钮时,布尔值设置为 true 并且 StartWorking
函数启动。
至此一切正常。
函数 StartWorking:
public void StartWorking()
{
MessageBox.Show(taskName2 + " " + DateTime2 + " " + More2);
ListViewItem lvi = new ListViewItem(taskName2);
lvi.SubItems.Add(DateTime2);
lvi.SubItems.Add(More2);
listView1.Items.Add(lvi);
}
现在在函数中 MessageBox 工作并显示字符串,但是当我看到 listview1 时没有任何变化。为什么它不创建任何东西?
实例化后没有显示Form1
。使用 Show()
方法 celender.Show();
显示 Form1
并像这样更改您的代码:
Hide();
string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form1 celender = new Form1(taskName1,DateTime1,More1,true);
celender.Show();
celender.Closed += (s, args) => this.Close();