Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/89: Рейтинг темы: голосов - 89, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 10
1

Как изменить свойства одной формы из другой?

19.04.2013, 23:46. Показов 17702. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю текстовый редактор из нескольких форм в visual studio на C#.
Мне нужно что-бы когда счетчик на одной форме доходил до нуля, во второй форме менялись кое-какие свойства MenuStrip.
Сделал те кнопки публичными, всеравно не работает, выдает ошибки что-то про нестатичные поля.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2013, 23:46
Ответы с готовыми решениями:

Как изменить фон одной формы из другой
Программисты помогайте! Нужна помощь!!! У меня есть главная форма в которой есть Background и есть...

Как из одной формы изменить значение переменной в другой форме?
Есть несколько форм. При открытии формы 6,7 или 8, появляется вопрос с тремя вариантами ответа, и...

Передать bitmap из одной формы, изменить его в другой и вернуть обратно. как?
public Create(Bitmap bmp) { InitializeComponent(); ...

Изменить свойства компонента другой формы
Есть Form1,textBox1,button1. button1 она открывает Form2 #include "Ras1.h" ....... private:...

8
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 86
20.04.2013, 11:30 2
порпобуй в одной форме написать название другой и после нее ставишь точку и что там тебе надо делать
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 10
20.04.2013, 11:52  [ТС] 3
Это было-бы слишком просто и я бы не спрашивал.
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
20.04.2013, 12:52 4
Вам нужна ссылка на ту форму, у которой вы хотите поменять свойство.
При создании формы запоминайте на неё ссылку, например, в отдельном поле.
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 10
20.04.2013, 13:19  [ТС] 5
Мне нужно изменить свойство компоненты, этой формы, через событие другой.
Можете написать пример?
Допустим 2 формы, на одной textbox, а на другой кнопка.
При нажатии на конпку другой формы, textbox первой формы должен стать readonly.
0
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
20.04.2013, 14:19 6
Сделайте у формы public метод, который изменяет ее свойства так, как тебе нужно:
C#
1
2
3
4
5
6
7
public ChangeRequiredProperties(string newTitle)
{
     this.textBox1.ReadOnly = false;
     this.Text = newTitle;
     // да что угодно
     ...
}
А в другой задайте вызов этого метода по нажатию на кнопку:
C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
{
     form2.ChangeRequiredProperties("Свойства изменены из формы " + this.Text);
}
0
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 10
20.04.2013, 15:13  [ТС] 7
Нет, для нестатичного поля требуется ссылка на объект.

На form2 textBox1.
На form1 Button1.

Код для form1:


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2.textBox1.text = "lol";
}
}
}


не работает, при том что textBox1 - публичный объект
0
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
20.04.2013, 15:18 8
Дык Form2 - это же не объект формы, а класс. От оно у Вас и не работает.
Должно быть что-то типа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public partial class Form1 : Form
{
     // переменная для хранения объекта класса Form2 - открытого окна.
     private Form2 form2;
 
...
    {
        ....
    // где-то Вы создали форму Form2
         form2 = new Form2();
         form2.Show();
       ...
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
         // обращаетесь к элементу ранее созданного ОБЪЕКТА
         form2.textBox1.text = "lol";
     }
}
1
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 10
20.04.2013, 17:30  [ТС] 9
Спасибо ОГРОМНОЕ!)))

Добавлено через 26 минут
Только в уже открытой форме не знаю как изменить

Добавлено через 5 минут
там нужно написать не Form2 frm = new Form2();
а как-то по другому.Как обозначить родительскую форму?

Добавлено через 14 минут
Form1 frm = (Form1)this.Parent;
не то

Добавлено через 3 минуты
Как вообще обратиться к уже открытой, показаной форме и в ней что-то изменить?

Добавлено через 4 минуты
О, сделал вот так Form1 frm = (Form1)ActiveForm;
это бред, но пока по-другому не знаю как.Подскажите как.

Добавлено через 2 минуты
И еще вопрос: какое событие отвечает за смену фокуса формы?
0
20.04.2013, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2013, 17:30
Помогаю со студенческими работами здесь

Свойства группы компонентов одной формы должны влиять на аналогичную группу в другой
есть простая задача - MainForm с 6 кнопками с Content'ом от 1 до 6(для простоты Radiobutton) и с...

Как перенести значения из одного компонента одной формы в другой компонент другой формы?
В общем ситуация смешная для профи,делаю программу для редактирования и печати вкладышей для...

Из события одной формы изменить свойство в другой форме
Из события button_Click первой формы необходимо обратится к свойству tabControl другой формы. Как...

Как менять свойства объектов из другой формы
У меня есть основная форма, на ней располагаются кнопки добавления, редактирования, и основной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru