2015-09-17 38 views
0

添加ListViewItem的我写了一个代码为2点的形式, 的主要形式建设 - 这得3串从子窗体(AddTask不能在功能

在主窗体(Form1):

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个文本框。该按钮有一个click事件:

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的没有什么变化。它为什么不创造任何东西?

回答

0

实例化之后,您没有显示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();