У меня есть форма Mdiparent, содержащая кнопку и некоторые дочерние формы. Как можно изменить обратную окраску всех текстовых полей во всех дочерних формах при нажатии кнопки в родительской форме?Как изменить свойства элементов управления дочерней формы в родительской форме
ответ
Это ChilForm
;
public ChilForm()
{
InitializeComponent();
}
public void ChangeTextboxColor()
{
textBox1.BackColor = Color.Yellow;
}
И это Parent
;
ChilForm frm = new ChilForm();
public Parent()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Shows the child
frm.Show();
}
private void button2_Click(object sender, EventArgs e)
{
//Changes color
frm.ChangeTextboxColor();
}
Хотя это будет работать, вам потребуется создать экземпляр всех дочерних форм и самостоятельно вызвать их методы. Альтернативой этому может быть использование наблюдаемого шаблона или, по крайней мере, использование событий. –
Да, это работает, спасибо Иршад. :) – Behnam
я знаю ответ уже дан .. но я бы с событием и делегатов .. групповой делегат лучший выбор здесь так вот мое решение.
namespace winMultiCastDelegate
{
public partial class Form1 : Form
{
public delegate void ChangeBackColorDelegate(Color backgroundColor);
//just avoid null check instanciate it with fake delegate.
public event ChangeBackColorDelegate ChangeBackColor = delegate { };
public Form1()
{
InitializeComponent();
//instanciate child form for N time.. just to simulate
for (int i = 0; i < 3; i++)
{
var childForm = new ChildForm();
//subscribe parent event
this.ChangeBackColor += childForm.ChangeColor;
//show every form
childForm.Show();
}
}
private void button1_Click(object sender, EventArgs e)
{
ChangeBackColor.Invoke(Color.Black);
}
}
/// <summary>
/// child form class having text box inside
/// </summary>
public class ChildForm : Form
{
private TextBox textBox;
public ChildForm()
{
textBox = new TextBox();
textBox.Width = 200;
this.Controls.Add(textBox);
}
public void ChangeColor(Color color)
{
textBox.BackColor = color;
}
}
}
- 1. Delphi обновляет элемент управления родительской формы из дочерней формы
- 2. Как переопределить отображение родительской формы в дочерней форме?
- 3. Метод вызова в родительской форме из дочерней формы
- 4. Включение родительской формы из дочерней формы
- 5. Как изменить макет элемента управления в родительской форме wpf из дочерней winform?
- 6. Метод вызова в родительской форме из дочерней формы для перезагрузки строк datagridview в родительской форме
- 7. отображение данных дочерней формы в родительской форме symfony2
- 8. DataGridView в дочерней форме
- 9. Как получить значение родительской формы Symfony3 из дочерней формы?
- 10. Как установить Доступ к форме родительской формы Из ее дочерней формы
- 11. Force WaitCursor к родительской форме модальной формы
- 12. как вызвать функцию родительской формы из дочерней формы
- 13. изменить свойство элементов управления rad в форме
- 14. Вызов метода родительской формы в showdialog дочерней формы в Compact Framework Causeing ThreadAbortException
- 15. Как изменить свойства элементов управления InstallShield динамически?
- 16. пользовательских элементов управления Свойства - C#, Формы
- 17. Как решить неравномерность дочерней формы Delphi в родительской форме в XP
- 18. Coldfusion: Вставка полей родительской/дочерней динамической формы
- 19. Каков правильный способ изменения свойств в родительской форме из дочерней формы?
- 20. Изменение свойств любого элемента управления в родительской форме
- 21. listview в дочерней форме
- 22. какое событие происходит в родительской форме после закрытия его модальной дочерней формы в WinForms?
- 23. Изменить значение из в родительской форме из формы ребенка
- 24. Загрузка данных дочерней формы в форме MDI
- 25. Как включить мой пользовательский контроль для определения элементов управления в его родительской форме во время разработки?
- 26. Изменить свойство текста всех элементов в форме
- 27. Как избежать формы формы для дочерней формы для вызова обработчика родительской формы
- 28. Как изменить размер панели управления при изменении размера родительской формы
- 29. Инициализация элементов управления формы
- 30. Изменение элемента управления родителя из дочерней формы winform C#
Сделать все текстовые поля общедоступными в дочерней форме и получить к нему доступ, вызывая дочернюю форму от родителя. – Irshad
Я должен называть все текстовые поля отдельно? – Behnam
Напишите метод в дочерней форме и назовите его. Тогда нет необходимости устанавливать модификатор 'public' для текстовых полей. – Irshad