none
Очень простой вопрос... наверно RRS feed

  • Вопрос

  • У меня некоторое количество UserControl наследуются от BaseUserControl. И в каждом из них выполняются какие то математические вычисления, и результаты надо запоминать. вопрос! как запомнить результаты из одного юзерконтрола и передавать в другой. подскажите пожалуйста
    • Перемещено I.Vorontsov 24 июня 2010 г. 7:14 (От:Visual C#)
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:26 MSDN Forums consolidation (От:Разработка Windows-приложений)
    22 июня 2010 г. 16:42

Ответы

  • 1. Самый брутальный вариант:

    Все юзер контролы находятся в одном контейнере. Для упрощения в одной форме. В Форме заводим переменную для хранения вычисляемого значения

        private double _d;
        public double D 
        {
          get { return _d; }
          set { _d = value; }
        }

    Обращаемся к переменной из всех юзерконтролов приводя Parent к форме.

    ((Form1)Parent).D = 0.1;

     

    2. В Юзерконтроле объявляем событие "РассчетОкончен", параметром в него передаем рассчитанное значение. В форме создаем обработчик в котором при срабатывании раздаем всем нуждающимся в результате юзерконтролам полученное значение, посредством вызова публичных функций.

     

    3. И тд.

     

     

    • Помечено в качестве ответа I.Vorontsov 23 июня 2010 г. 7:47
    22 июня 2010 г. 18:27
    Модератор

Все ответы

  • 1. Самый брутальный вариант:

    Все юзер контролы находятся в одном контейнере. Для упрощения в одной форме. В Форме заводим переменную для хранения вычисляемого значения

        private double _d;
        public double D 
        {
          get { return _d; }
          set { _d = value; }
        }

    Обращаемся к переменной из всех юзерконтролов приводя Parent к форме.

    ((Form1)Parent).D = 0.1;

     

    2. В Юзерконтроле объявляем событие "РассчетОкончен", параметром в него передаем рассчитанное значение. В форме создаем обработчик в котором при срабатывании раздаем всем нуждающимся в результате юзерконтролам полученное значение, посредством вызова публичных функций.

     

    3. И тд.

     

     

    • Помечено в качестве ответа I.Vorontsov 23 июня 2010 г. 7:47
    22 июня 2010 г. 18:27
    Модератор
  • это конечно хорошие способы, но я не могу это реализовать так как я юзер контролы проецирую не на форму, а на фрейм, поэтому не получается. А с событием не особо понял, пожалуйста поясни или предложи еще варианты
    22 июня 2010 г. 20:03
  • Parent был для упрощения примера. Используй FindForm():

    ((Form1)this.FindForm()).D = 0.1;

    23 июня 2010 г. 4:16
    Модератор
  • Заведите статический класс типа Util, в нем статическое публичное поле/св-во типа ComputedValue. И пихайте в это поле откуда угодно циферки(или чего у вас там?), и считывайте где угодно. Вам явно нужна простая глобальная переменная, static - это именно она.
    23 июня 2010 г. 13:05