Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 05:18   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Подскажите как из FormSetting получить доступ к MainForm?

Есть MainForm и FormSetting, то есть главная форма и форма настроек приложения. Нажимаю на кнопке "Настройки" на главной форме:
Код:
private void btnSetting_Click(object sender, EventArgs e)
        {
            FormSetting formSet = new FormSetting();
            //если нажали ОК в форме настроек, то...
            if (formSet.ShowDialog(this) == DialogResult.OK)
            {

            }
        }
Тут я объявляю переменные для MainForm и структуры AllSettings далее MainForm присваиваю (как я понял) ссылку на именно эту форму:
Код:
public partial class MainForm : Form
    {
        public AllSettings SettingsProg = new AllSettings();
        MainForm formMain = new MainForm();
        static int LenArray = 10;
        Image CloseDark = new Bitmap(Properties.Resources.Кнопка_закрыть7);
        Image CloseLight = new Bitmap(Properties.Resources.Кнопка_закрыть8);

        MediaPlayer mp = new MediaPlayer();
        public MainForm()
        {
            formMain = this; //тут присваиваю ссылку на именно эту форму (правильно?)
            InitializeComponent();
            Set_MouseDown_Hook(this);
            SettingsProg.Hour = 0;
            SettingsProg.Min = 0;
        }
Пытаюсь получить доступ из FormSetting к структуре SettingProg:
Код:
public void SaveSetting()
        {
            formMain.SettingsProg.DefaultMusicFolder = this.textBoxDefFolder.Text;
        }
Пишет, что formMain не существует в текущем контексте

если сделать так (в SettingForm):
Код:
public void SaveSetting()
        {
            MainForm formMain = new MainForm();
            formMain.SettingsProg.DefaultMusicFolder = this.textBoxDefFolder.Text;
        }
То сохраняется это всё в структуру, но не в ту, что объявлена на MainForm. Похоже сохраняется в новый экземпляр структуры, да и как мне кажется formMain ссылается не на главную форму, а на новый её экземпляр. Как ссылаться из SettingForm на FormMain?
Casper-SC вне форума Ответить с цитированием
Старый 11.01.2010, 11:58   #2
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Если я правильно понял, то вот так:
У тебя есть главная форма MainForm из нее вызываешь вот так дочернюю форму FormSetting:
Код:
FormSetting settForm = new FormSetting(this);
settForm.Show(this);
В дочерней форме пишешь:
Код:
MainForm mainForm;
public FormSetting(MainForm maimForm)
        {
            this.mainForm = mainForm;
            InitializeComponent();
        }
Теперь, если тебе надо вызвать метод главной формы в дочерней форме пишешь:
Код:
MainForm frmFirst = this.Owner as MainForm;
И далее через объект frmFirst обращаешься куда надо. Если к методу, то
Код:
frmFirst.YouMethod();
Если хочешь поменять значение какого-то элемента управления формы, например метки, то
Код:
frmFirst.label.Text = "Привет!";
Horknee вне форума Ответить с цитированием
Старый 11.01.2010, 15:22   #3
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Leiko
Тема не существует или не указан идентификатор (номер).
Horknee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к микшерам винды iiunbreakableii Мультимедиа в Delphi 8 13.11.2009 16:03
Как получить доступ к сайту в DELPHI cowboy Общие вопросы Delphi 8 10.09.2009 16:12
Как получить доступ к файлу в локальной сети. DV-Karpov Работа с сетью в Delphi 2 18.11.2008 21:53
Как получить доступ к данным kiber0net0 Помощь студентам 2 03.09.2008 08:14
Как получить доступ к ячейке DBGrid RatMir БД в Delphi 1 16.06.2008 22:35