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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 20:01   #1
tumanovalex
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 83
Вопрос Как правильно передать несколько разнородных данных из одной формы в другую?

На форме MainForm много элементов управления (установка цвета, комбобоксы, numUpDown и другие), значения которых я хочу передать в форму Test. Можно, конечно, написать свойство для каждого из значений элементов управления. Но хотелось бы сделать так: в основной форме я делаю структуру из значений параметров и передаю ее за один get структуре в форме Test, а потом использую поля структуры формы тест для дальнейших операций. В форме Main в класс Main Forм создал код:
Код:
public struct LineParam
{
  public Int32 numLineSizeUdf;
  public Color clrLineColor;
  public Int32 numLineSpace;
  public Color clrLineFon;
}

public LineParam lp;

public LineParam getParamLine()
{
  lp.numLineSizeUdf = (Int32)numLineSize.Value;
  lp.numLineSpace = (Int32)numSpace.Value;
  lp.clrLineColor = lblColor.ForeColor;
  lp.clrLineFon = lblFon.ForeColor;
  return lp;
}
В форме Test:
Код:
public MainForm.LineParam lptst;  
private void TestScreen_Load(object sender, EventArgs e)
{
  lptst = new MainForm.LineParam(); 
  lptst = ((MainForm)this.Owner).getParamLine(); // Вот здесь ошибка "В экземпляре объекта не задана ссылка на объект".
}
Подскажите, пожалуйста, как исправить ошибку.
tumanovalex вне форума Ответить с цитированием
Старый 21.05.2011, 01:09   #2
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

лучше так:
форма test:
Код:
public MainForm mf;
public Test(MainForm mf)
{
   InitializeComponent();
   this.mf=mf; //передаем ссылку на главную форму
}

public mf.LineParam lptst;
private void TestScreen_Load(object sender, EventArgs e)
{
   lptst = mf.getParamLine();
}
это если использовать структуру. ещё можно выставить у компонентов свойство modifiers в public и тягать свойства компонента с других форм. например mf.lblFon.ForeColor;
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 21.05.2011 в 01:12.
TaTT DoGG вне форума Ответить с цитированием
Старый 21.05.2011, 10:05   #3
tumanovalex
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 83
По умолчанию

Спасибо большое, так работает
tumanovalex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значение пременной из одной функции в другую? mr.-parker Общие вопросы C/C++ 2 27.03.2010 15:01
C#: Передать значение переменной из одной формы в другую Veiron Общие вопросы .NET 3 29.06.2009 17:43
Как импортировать переменные с одной формы на другую? Aster Общие вопросы Delphi 1 23.03.2009 22:52
как перейти из одной формы в другую lusek Общие вопросы Delphi 7 01.02.2009 14:16
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57