Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

на форме1 есть кнопка btn
на форме2 есть listbox
я хочу по нажатию на кнопку btn вывести "Ура заработало" в listbox

объявления типа
public static System.Windows.Forms.ListBox listBox;
выдают ошибку:
Member 'WindowsFormsApplication1.Form2.listBox' cannot be accessed with an instance reference; qualify it with a type name instead



Партнер
 

Member
Статус: Не в сети
Регистрация: 05.12.2005
У компонента listBox ставишь свойство Modifers в положение public.
В конструктор другой формы передаешь указатель на твою Form2. Там уже можешь запомнить этот указатель где-нибудь еще, но главное ты сможешь спокойно из другой формы менять значение твоего listbox.
А делать объявление public static для компоненты формы очень некрасиво...


 

sashar2 писал(а):
У компонента listBox ставишь свойство Modifers в положение public.
В конструктор другой формы передаешь указатель на твою Form2. Там уже можешь запомнить этот указатель где-нибудь еще, но главное ты сможешь спокойно из другой формы менять значение твоего listbox.
А делать объявление public static для компоненты формы очень некрасиво...


Всё равно не получается. Возможно я что то не так сделал.
private void button1_Click(object sender, EventArgs e)
{
Form sysForm = new Form2();
//Form2.listBox1.Items.Add("adf"); - ошибка
//sysForm.listBox1.Items.Add("adf"); - ошибка
sysForm.Show();

}
компонент listbox1 взят из toolbox


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
eshtrey
Конечно не так сделал...

Код:
   
private void button1_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
      form2.listBox1.Items.Add("Hello from Form1!");
      form2.Show();
    }


 

sashar2 писал(а):
eshtrey
Конечно не так сделал...

Код:
   
private void button1_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
      form2.listBox1.Items.Add("Hello from Form1!");
      form2.Show();
    }


Спасибо, заработало!
Я просто ставил Form вместо Form2, глупая ошибка
Добавлено спустя 1 минуту, 4 секунды
А вот второй способ

Form frm = Application.OpenForms["Form2"];
ListBox lst = (ListBox)frm.Controls["listBox1"];
lst.Items.Add("Ура зароботало!");


 

Member
Статус: Не в сети
Регистрация: 05.12.2005
eshtrey
Это не второй способ, это два разных случая. В одном случае ты обращаешся к уже открытой форме и тебе никто не гарантирует, что она принадлежит к какому-то классу и там есть определенные компоненты. А в другом случае ты сам открываешь форму.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan