powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача значения из одной формы в другую.
15 сообщений из 15, страница 1 из 1
Передача значения из одной формы в другую.
    #38150455
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две Win формы.
Надо передaвать значения из одной в другую.
Есть идея создать отдельный set/get класс и через него отправлять данные.
например

Класс
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
namespace PyroMaster
{
    public class SetGetClass
    {
        public class newTrade
        {
            public int isNew { get; set; }
        }
    }
}


Форма 1 отправляет
Код: c#
1.
2.
3.
4.
5.
private void cmd_NewRegistration_Click_1(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            SetGetClass.newTrade isNew = new SetGetClass.newTrade() {isNew = 1};

        }


Форма 2 хочется чтобы читала
Код: c#
1.
2.
3.
4.
5.
object isNew;

isNew = new SetGetClass.newTrade();
SetGetClass.newTrade classRef;
classRef = (SetGetClass.newTrade)isNew;



но там значение всегда 0
Подскажите как это организовать правильно.
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38150497
stim24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно static сделать в классе newTrade ...
static public int isNew { get; set; }
или в формах сделать ссылки друг на друга...
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38150514
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ay-yЕсть две Win формы.
Надо передaвать значения из одной в другую.
Есть идея создать отдельный set/get класс и через него отправлять данные.
например

Класс
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
namespace PyroMaster
{
    public class SetGetClass
    {
        public class newTrade
        {
            public int isNew { get; set; }
        }
    }
}


Форма 1 отправляет
Код: c#
1.
2.
3.
4.
5.
private void cmd_NewRegistration_Click_1(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            SetGetClass.newTrade isNew = new SetGetClass.newTrade() {isNew = 1};

        }


Форма 2 хочется чтобы читала
Код: c#
1.
2.
3.
4.
5.
object isNew;

isNew = new SetGetClass.newTrade();
SetGetClass.newTrade classRef;
classRef = (SetGetClass.newTrade)isNew;



но там значение всегда 0
Подскажите как это организовать правильно.

в форме 2 в конструкторе
Код: c#
1.
this.isNew = isNew;


т.к. new создаёт новый экземпляр объекта, и естественно, в нем свойство isNew = 0
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151674
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пересылать значения в рамках, не хочется.
Хочется создать класс, котором будет набор SetGet-ов и разные формы будут читать из него.

kmawв форме 2 в конструкторе
Код: c#
1.
this.isNew = isNew;


т.к. new создаёт новый экземпляр объекта, и естественно, в нем свойство isNew = 0
Как написать так чтобы этого не было?
Пример можно?
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151721
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public class Form1 : Form
    {
        SomeType obj;//что-то с ним делается в классе формы Form1

        pivate void someMethod()
        {
            using(Form2 f = new Form2(obj))
            {
                f.ShowDialog();
            }
        }
    }

    public class Form2 : Form
    {
        SomeType obj;//что-то с ним делается в классе формы Form2

        public Form2(SomeType obj)
        {
            this.obj = obj;
        }
    }
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151739
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public class Form1 : Form
    {
        SomeType obj;//что-то с ним делается в классе формы Form1

        pivate void someMethod()
        {
            using(Form2 f = new Form2(obj))
            {
                f.ShowDialog();
            }
        }
    }

    public class Form2 : Form
    {
        SomeType obj;//что-то с ним делается в классе формы Form2

        public Form2(SomeType obj)
        {
            this.obj = obj;
        }
    }


Внутри формы-то, всё передаётся, мне надо чтобы передавалось черз третий класс, к которому будут обращаться обе формы. Этакий глобальный депозиторий переменных.
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151747
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прогу запускайте через класс с процедурой Main() , там открывайте свои формы и создавайте нужные структуры с данными
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151764
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
Гмм...
И это единственное решение?
Неужели невозможно создать отдельный класс и пользоваться им когда надо?
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151797
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ay-y,
ответили же - статичное поле.
но на собственный риск.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 public class Form1 : Form
    {
        static public int isNew { get; set; }
        private void someMethod()
        {
              isNew=1;           
        }
    }

    public class Form2 : Form
    {
        private void someMethod()
        {
           if (Form1.isNew==1){}
           if (Depository.NEW==1){} 
           if (DEP==1){}
        }
        int DEP
       {
           get { return Depository.NEW;}
       } 
    }
    public class Depository
    {
           public static int NEW;
    }
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151803
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ay-yмне надо чтобы передавалось черз третий класс, к которому будут обращаться обе формы. Этакий глобальный депозиторий переменных.

тогда static тебе в помощь. но это не "Передача значения из одной формы в другую"
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151818
Фотография Ken@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Это MessageBus
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151831
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему страх и риск?

MessageBus, ну что-то в этом духе, но только внутри одного проекта.
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151857
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статик работает, но всё-же непонятно, в чём риск и как с ним бороться.
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151876
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ay-yв чём риск и как с ним бороться.
риск в том , что эти поля открыты для всех, и ежли какой-то другой класс изменит значение этого поля - удивляться не стоит - почему
Form1.isNew==1
внезапно стало
Form1.isNew!=1
отследить это порой очень не просто.

как бороться ? если такой риск приемлем, то бороться и не надо, а если не приемлем то гуглим обмен данными между классами и выбираем нужный
...
Рейтинг: 0 / 0
Передача значения из одной формы в другую.
    #38151883
Ay-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er,

Согласно статик не так уж и плох.
Спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача значения из одной формы в другую.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]