2015-09-17 2 views
0

Я написал код, который строит из 2-х форм, основной формы - (Form1), который получает 3 строки из субформы (AddTask)Невозможно добавить ListViewItem в функции

В основной форме:

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 булевскую переменную. Когда логическое значение true, начинается функция 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(); 

Так что, когда я нажимаю на кнопку Подчиненная форма булево устанавливается истина, и функция 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 после его создания. Показать Form1 с помощью метода Show()celender.Show();, а также изменить код:

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(); 
Смежные вопросы