Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 2
1

Как передать во вторую форму, указатель на элемент коллекции

27.12.2016, 13:39. Показов 1210. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
 
using System.Xml.Serialization;
using System.Runtime.Serialization;
 
namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private AirFlot A = new AirFlot();
 
        private string nameOpenFile = "";
 
        private int numRowCount;                    // текущее количество строк в таблице
//....
        private void button_Edit_Click(object sender, EventArgs e)
        {
            int x = -1;
            try
            {
                x = DGV.SelectedCells[0].RowIndex;
            }
            catch { }
            if (x != -1)
            {
                label_information.Text = "";
 
                Reis tmp;
                tmp = A.GetFrom_massiv(x);
                Form2 form2 = new Form2(tmp);
 
                form2.ShowDialog();
                
                MasToDGV();
            }
            if( x == -1)
            {
                label_information.Text = "Не выбран рейс!";
            }
           
        }   
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    public class Test
    {
        public Test()
        {
            ;
        }
        public Test(int x, int y)
        {
            first = x;
            second = y;
        }
        private int first;
        
        public int second;
    }
    [Serializable]
    public class AirFlot
    {
        public AirFlot()
        {
 
 
        }
        public AirFlot(int count)
        {
         
        }
        //Массив свободных мест
        private List<int> masFree = new List<int>();
        public void ChangeIn_masFree(int x, int index)
        {
            masFree[index] = x; 
        }
        public void PutIn_masFree(int x)
        {
            masFree.Add(x);
        }
        public int GetFrom_masFree(int index)
        {
           
            return masFree[index];
        }
 
 
        private List<Reis> massiv = new List<Reis>();                     // массив элементов вспомогательного класса РЕЙСОВ
        public List<Reis> Massiv
        {
            get
            {
                return massiv;
            }
            private set {; }
            
        }
        public void PutIn_massiv(Reis x)
        {
            Reis tmp = new Reis();
            tmp.Number = x.Number;
            tmp.Destination = x.Destination;
            tmp.TimeIn = x.TimeIn;
            tmp.TimeOut = x.TimeOut;
            tmp.Price = x.Price;
            tmp.TypeShip = x.TypeShip;
            massiv.Add(tmp);
        }
        public Reis GetFrom_massiv(int index)
        {
            return massiv[index];
        }
      
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    [Serializable]
    public class Reis
    {
        public Reis()
        {
            this.number = 0;
            this.destination = "destination";
            TimeOut = new DateTime(2000, 10, 10, 10, 10, 10);
            TimeIn = new DateTime(2000, 10, 10, 10, 10, 10);
            this.price = 0;
            this.typeShip = "Samolet";
        }
        public Reis(int number, string destination, DateTime timeOut, DateTime timeIn, int Price, string typeShip)
        {
            //Year  month    day    hour    minutes
            TimeOut = new DateTime(2000, 10, 10, 10, 10, 10);
            TimeIn = new DateTime(2000, 10, 10, 10,10, 10);
            this.number = number;
            this.destination = destination;
            this.TimeOut = TimeOut;
            this.TimeIn = TimeIn;
            this.price = Price;
            this.typeShip = typeShip;
        }
        //
        private int number;                         // # рейса
        public int Number
        {
            get { return number; }
            set { number = value; }
        }
        //
        private string destination;                 // Пункт назначения
        public string Destination
        {
            get { return destination; }
            set { destination = value; }
        }
        //
        DateTime timeOut ;                   // время вылета
        public DateTime TimeOut                              
        {
            get { return timeOut; }
            set { timeOut = value; }
        }
        public void Put_timeOut(DateTime dt)
        {
            timeOut = dt;
        }
        //
        DateTime timeIn = new DateTime();                   // время прилета 
        public DateTime TimeIn                              
        {
            get { return timeIn; }
            set { timeIn = value; }
        }
        public void Put_timeIn(DateTime dt)         // добавление даты в класс
        {
            timeIn = dt;
        }
        //
        private int price;                          // цена билета
        public int Price
        {
            get { return price; }
            set { price = value; }
        }
        //
        private string typeShip;                       // тип самолета 
        public string TypeShip
        {
            get { return typeShip; }
            set { typeShip = value; }
        }
        private int unused;
        public int Unused
        {
            get { return unused; }
            set { unused = value; }
        }
    }
}
вторая форма
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication6
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(Reis reis)
        {
            InitializeComponent();
            this.tmp = reis;
            this.dateTimePicker_timeOut.CustomFormat = "HH:mm              MM/dd/yyyy";
            this.dateTimePicker_timeIn.CustomFormat  = "HH:mm              MM/dd/yyyy";
        }
        public Form2(Reis reis)
        {
            InitializeComponent();
            this.tmp = reis;
            this.dateTimePicker_timeOut.CustomFormat = "HH:mm              MM/dd/yyyy";
            this.dateTimePicker_timeIn.CustomFormat = "HH:mm              MM/dd/yyyy";
 
            
        }
        private Reis tmp ;
        private int countFreeSeats;
        private void Form2_Load(object sender, EventArgs e)
        {
            this.numericUpDown_number.Value = tmp.Number;
            this.textBox_destination.Text = tmp.Destination;
            this.dateTimePicker_timeOut.Value = tmp.TimeOut;
            this.dateTimePicker_timeIn.Value = tmp.TimeIn;
            this.numericUpDown_price.Value = tmp.Price;
            this.textBox_typeShip.Text = tmp.TypeShip;
            //
            this.numericUpDown_CountFreeSeats.Value = countFreeSeats;
            countFreeSeats = 125;
        }
 
        private void button_change_Click(object sender, EventArgs e)
        {
            tmp.Number = Convert.ToInt32(this.numericUpDown_number.Value);
            tmp.Destination = this.textBox_destination.Text;
            tmp.TimeOut = this.dateTimePicker_timeOut.Value;
            tmp.TimeIn = this.dateTimePicker_timeIn.Value;
            tmp.Price = Convert.ToInt32(this.numericUpDown_price.Value);
            tmp.TypeShip = Convert.ToString(this.textBox_typeShip.Text);
 
        }
 
        private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
 
            Hide();
        }
    }
}
Подскажите пожалуйста,
Как мне из первой формы в строчке 45, кроме объекта класса, передать элемент коллекции masFree с индексом "х", чтобы я изменил его на второй форме, и изменения сохранились. tmp получается по ссылке передается, и все изменения с его методами сохраняются в коллекции massiv, а как быть с элементом коллекции masFree, не знаю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2016, 13:39
Ответы с готовыми решениями:

Через CreateThread в поток передать указатель на форму или ее элемент
Можно ли через CreateThread в поток передать указатель на форму или ее элемент(VS2010)? ...

первая форма вызывает вторую форму передавая некоторые параметры, как во время закрытия 2-й формы передать из нее данные в 1-ю?
Во время обработки события в первой форме я вызываю вторую форму, в которой пользователь выбирает...

Как передать в подпрограмму указатель на i-тый элемент массива
Итак, есть главная программа, есть подпрограмма, в главной программе осуществляется только вывод и...

Передать данные на вторую форму
Добрый день! Есть коллекция dataGridView1.DataSource = names; затем есть создание второй...

2
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
27.12.2016, 15:39 2
Frielender, передавай с модификатором ref или out

Не по теме:

С английским у тебя тажеловато. Обязательно подтянуть иначе дорога в профессию закрыта.

0
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
29.12.2016, 12:37 3
Frielender, у тебя тип-значение в коллекции, потому либо как сказал aquaMakc передавай с модификатором ref, либо всю коллекцию скидывай. В идеале, по феншую, в форме редакторе сделай событие, которое будет уведомлять основную форму о том, что данные изменились, параметрами этого события пусть и прилетают измененный класс Reis и элемент коллекции в позиции x
0
29.12.2016, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2016, 12:37
Помогаю со студенческими работами здесь

Передать данные во вторую форму
Есть Form1 и Form2 в процессе выполнения в Form1 получаю переменную int option; и string patch....

Не могу передать переменные во вторую форму
начал учить пхп. но не получается передавать переменные в след форму. Подскажите, как это сделать?

Передать именно числовую переменную во вторую форму
Ни как не могу передать число например(int j=5; int L=J;)... Мне нужно с первой формы передать...

Передать данные во вторую форму по нажатию на кнопку
Добрый день. ФАК читал, чет не выходит. Главная форма. public partial class MainForm : Form {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru