2016-05-21 3 views
-3

Я новичок в C#, и я пишу простое приложение, которое хочет передать значение вида List 1 в текстовое поле формы 2. Итак, как я могу передать этот подпункт в текстовые поля формы 2?Как передать значение формы 1 в текстовое поле формы 2?

private void Form1_Load(object sender, EventArgs e) 
     { 
      ListViewItem item = new ListViewItem("ITEM1"); 
      item.SubItems.Add("ITEM2"); 
      item.SubItems.Add("ITEM3"); 
      listView1.Items.AddRange(new ListViewItem[] { item }); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 newForm = new Form2(); 
      newForm.Show(); 
     } 
+1

Смотрите мой две формы проекта на следующий веб-страницу. Вам нужно вызвать метод в Form2, который принимает входные данные из формы1. http://stackoverflow.com/questions/37366447/keep-checked-radio-button-checked-through-forms-c-sharp-visual-studio-2010/37366641#37366641 – jdweng

+0

OH NO! НЕ СНОВА! Самый заданный вопрос о переполнении стека снова возвращается. –

+0

Важное замечание для людей, отвечающих на эти вопросы: когда человек набирает этот заголовок, они будут видеть несколько ссылок на почти идентичные вопросы с уже полученными ответами в пользовательском интерфейсе переполнения стека перед кнопкой «Отправить». Чтобы нажать «Отправить», они должны были игнорировать все предыдущие ответы. Если ваш ответ ничем не отличается от любого из предыдущих ответов, что заставляет вас думать, что собеседник не будет игнорировать ваш ответ? –

ответ

1

Вы можете изменить конструктор Form2 как этого

public partial class Form2 : Form 
{ 
    public Form2(ListViewItem item) 
    { 
     InitializeComponent(); 
     textBox1.Text = item.Text; // item.Subitems[index].Text if you want the value of subitems 
    } 
} 

И когда вы создаете свою форму, вы передаете в пункте как так

private void createNewForm() 
{ 
    Form2 f = new Form2(listView1.Items[0]); // to pass the first item in this case 
    f.Show(); 
} 
+0

Спасибо. Он работает тогда – user6365686

1

Для этого вам необходимо объявить свойство в классе Form2:

public class Form2 
{ 
    public ListViewItem[] Items{get;set;} 

    //your code 
} 

, то вы можете передать listView1.Items в form2:

private void button1_Click(object sender, EventArgs e) 
{ 
    Form2 newForm = new Form2(); 
    newForm.Items = listView1.Items; // pass items to form2 
    newForm.Show(); 
} 

, а затем в Form2 случае нагрузки обработчик получает необходимые значения и устанавливает его в текстовые поля формы2:

public class Form2 
{ 
    public ListViewItem[] Items{get;set;} 

    private void Form2_Load(object sender, EventArgs e) 
    { 
     textBox1.Text = Items[0].SubItems[0].Text; // or your logic here in this handler    
    } 

    //your code 
} 
Смежные вопросы