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

Изменение данных в выделенной строке

09.05.2019, 14:14. Показов 2177. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Нужно оформить изменение данных в Grid
Есть две формы
Form1 - на нем грид и 3 кнопки (Добавить , изменить (change_Click), удалить)
Form5 - На нем поля для заполнения (TextBox , NumericUpDown) и кнопки (ОК, удалить)

При нажатии на кнопку "изменить (change_Click)" с Form1 , я передаю все данные из выделенной строки в поля на Form5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
        private void change_Click(object sender, EventArgs e)
        {
            int idd = dataGridView1.CurrentRow.Index;
            Form5 form5 = new Form5();
            form5.richTextBox2.Text = Convert.ToString(dataGridView1.CurrentRow.Index);
            form5.IndexOfAdd.Value = forQuery[idd].indexx;
            form5.EnterTheName1.Text = forQuery[idd].name.ToString();
            form5.PeriodOfAdd.Value = forQuery[idd].period;
            form5.FirstPriseOfAdd.Value = forQuery[idd].firstprice;
            form5.NameOfFull.Text = forQuery[idd].fullname.ToString();
            form5.richTextBox1.Text = forQuery[idd].adress.ToString();
            form5.PriceOf1PerCopy.Value = forQuery[idd].fullprice;
            form5.numericUpDown1.Value = forQuery[idd].number;
            form5.ShowDialog();
            
        }
На форме Form5 я меняю данные, нажимаю на кнопку ОК и присваиваю измененные данные из этих полей в Grid на форме Form1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void Ok_Click(object sender, EventArgs e)
        {
            int id = int.Parse(richTextBox2.Text);
            Form1 form1 = new Form1();
 
 
           
 
            form1.dataGridView1[0, id].Value = Convert.ToString(IndexOfAdd);
            form1.dataGridView1[1, id].Value = EnterTheName1.Text;
            form1.dataGridView1[2, id].Value = Convert.ToString(PeriodOfAdd);
            form1.dataGridView1[3, id].Value = Convert.ToString(FirstPriseOfAdd);
            form1.dataGridView1[4, id].Value = NameOfFull;
            form1.dataGridView1[5, id].Value = richTextBox1;
            form1.dataGridView1[6, id].Value = Convert.ToString(PriceOf1PerCopy);
            form1.dataGridView1[7, id].Value = Convert.ToString(numericUpDown1);
        }
Но они не меняются, тыкните пожалуйста , Где я накосячил , если можно код. Заранее спасибо!
Миниатюры
Изменение данных в выделенной строке   Изменение данных в выделенной строке  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2019, 14:14
Ответы с готовыми решениями:

Вывод данных по выделенной строке в две таблицы
Здравствуйте, есть 3 связанные таблицы (Списание_запчастей, Детали_на_списание и Гос_номера_списание), необходимо сделать так, что по...

Как из datagridview сделать выборку данных по выделенной пользователем строке?
Как из datagridview, сделать выборку данных по выделеной пользователем строке. string squ = "SELECT path FROM data_storage WHERE...

Изменение данных в строке DBGrid
Есть DBGrid->datasource->ADOQuery. Таблица содержит Фамилия, Имя, Номер,Дата. Нужно, чтобы по выбору строки (например кликнули по ней),...

11
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
09.05.2019, 14:28
вносить изменения нужно в forQuery, а не в Grid
0
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
09.05.2019, 15:57  [ТС]
Ошибка CS1612 Не удалось изменить возвращаемое значение "List<Form1.book>.this[int]", т.*к. оно не является переменной
C#
1
form1.forQuery[id].indexx = Convert.ToString(IndexOfAdd);
Так?
Может я тебя не правильно понял?

Добавлено через 1 минуту
Можешь объяснить если не сложно?

Добавлено через 1 час 23 минуты
Как я понял я пытался на прямую изменить коллекцию структур , а так нельзя делать .
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 public struct book
        {
            public int indexx, period, firstprice,fullprice,number;
            public string name, fullname, adress;
       
            public book(int _indexx, string _name, int _period, int _firstprice, string _fullname, string _adress,int _fullprice, int _number)
            {
                indexx = _indexx;
                name = _name;
                period = _period;
                firstprice = _firstprice;
                fullname = _fullname;
                adress = _adress;
                fullprice = _fullprice;
                number = _number;
            }
 
        }
        
        public List<book> forQuery = new List<book>();
Как действовать дальше , и правильно ли я все понял
Что если Если я изменю struct на class?
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
09.05.2019, 17:10
Цитата Сообщение от Halacky Посмотреть сообщение
Как я понял я пытался на прямую изменить коллекцию структур , а так нельзя делать
Можно так:
C#
1
2
3
var item=form1.forQuery[id];
item.indexx = IndexOfAdd; // зачем тут Convert.ToString?
form1.forQuery[id]=item;
Цитата Сообщение от Halacky Посмотреть сообщение
Что если Если я изменю struct на class?
тогда можно изменять без промежуточной переменной
0
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
09.05.2019, 17:58  [ТС]
Если cделать как ты сказал , то он ругается на преобразование типа
(Ошибка CS0029 Не удается неявно преобразовать тип "System.Windows.Forms.NumericUpDown" в "int".)

Если праву сторону конвертировать к типу INT , ошибка пропадает ,
но при запуске и попытке изменить это поле он выдает ошибку
(System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.Имя параметра: index")

Может есть лучше и проще способ как в моем случае изменить данные в Grid?
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
09.05.2019, 19:24
Цитата Сообщение от Halacky Посмотреть сообщение
Не удается неявно преобразовать тип "System.Windows.Forms.NumericUpDown" в "int".)
C#
1
item.indexx = (int)IndexOfAdd.Value;
0
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
09.05.2019, 19:30  [ТС]
Ошибка осталось та же
(System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.Имя параметра: index")
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
10.05.2019, 11:14
вы бы показали весь проект - проще было бы что-то советовать
0
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
10.05.2019, 15:06  [ТС]
Form 1 Главная форма с гридом и кнопками

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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
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 Files
{
    public partial class Form1 : Form
    {
        
        public class book
        {
            public int indexx, period, firstprice,fullprice,number;
            public string name, fullname, adress;
            
            
            public book(int _indexx, string _name, int _period, int _firstprice, string _fullname, string _adress,int _fullprice, int _number)
            {
                indexx = _indexx;
                name = _name;
                period = _period;
                firstprice = _firstprice;
                fullname = _fullname;
                adress = _adress;
                fullprice = _fullprice;
                number = _number;
            }
 
        }
 
        public List<book> forQuery = new List<book>();
 
        public int index = 0;
 
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
 
        private void add_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
            if (form2.flag)
            {
                dataGridView1.RowCount++;
                dataGridView1[0, index].Value = Convert.ToString(form2.indexx);
                dataGridView1[1, index].Value = form2.name;
                dataGridView1[2, index].Value = Convert.ToString(form2.period);
                dataGridView1[3, index].Value = Convert.ToString(form2.firstprice);
                dataGridView1[4, index].Value = form2.fullname;
                dataGridView1[5, index].Value = form2.adress;
                dataGridView1[6, index].Value = Convert.ToString(form2.fullprice);
                dataGridView1[7, index].Value = Convert.ToString(form2.number);
                index++;
                del.Enabled = true;
            }
            
            
 
        }
 
        private void Exit_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void del_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3(index);
            form3.ShowDialog();
            if (form3.flag)
            {
                for(int i = form3.numofdeltherow; i < index; ++i)
                {
                    dataGridView1[0, i].Value = dataGridView1[0, i + 1].Value;
                    dataGridView1[1, i].Value = dataGridView1[1, i + 1].Value;
                    dataGridView1[2, i].Value = dataGridView1[2, i + 1].Value;
                    dataGridView1[3, i].Value = dataGridView1[3, i + 1].Value;
                    dataGridView1[4, i].Value = dataGridView1[4, i + 1].Value;
                    dataGridView1[5, i].Value = dataGridView1[5, i + 1].Value;
                    dataGridView1[6, i].Value = dataGridView1[6, i + 1].Value;
                    dataGridView1[7, i].Value = dataGridView1[7, i + 1].Value;
                   
                }
                dataGridView1.RowCount--;
                index--;
                if(index == 0)
                {
                    del.Enabled = false;
                }
            }
        }
 
        private void Query_Click(object sender, EventArgs e)
        {
            forQuery.Clear();
            for(int i = 0; i < index; ++i)
            {
                forQuery.Add(
                    new book(
                        Convert.ToInt32(dataGridView1[0, i].Value),
                        Convert.ToString(dataGridView1[1, i].Value),
                        Convert.ToInt32(dataGridView1[2, i].Value),
                        Convert.ToInt32(dataGridView1[3, i].Value),
                        Convert.ToString(dataGridView1[4, i].Value),
                        Convert.ToString(dataGridView1[5, i].Value),
                        Convert.ToInt32(dataGridView1[6, i].Value),
                        Convert.ToInt32(dataGridView1[7, i].Value)
                    )
                );
            }
            Form4 form4 = new Form4(forQuery);
            form4.ShowDialog();
        }
 
        private void OpenFile_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
            forQuery.Clear();
            string filename = openFileDialog1.FileName;
            foreach (string line in System.IO.File.ReadLines(filename))
            {
                string[] parsing = line.Split(' ');
                forQuery.Add(
                    new book(
 
                        Convert.ToInt32(parsing[0]),
                        Convert.ToString(parsing[1]),
                        Convert.ToInt32(parsing[2]),
                        Convert.ToInt32(parsing[3]),
                        Convert.ToString(parsing[4]),
                        Convert.ToString(parsing[5]),
                        Convert.ToInt32(parsing[6]),
                        Convert.ToInt32(parsing[7])
                    )
                );
            }
 
            dataGridView1.RowCount = forQuery.Count + 1;
            for(int i = 0; i < forQuery.Count; ++i)
            {
                dataGridView1[0, i].Value = Convert.ToString(forQuery[i].indexx);
                dataGridView1[1, i].Value = Convert.ToString(forQuery[i].name);
                dataGridView1[2, i].Value = Convert.ToString(forQuery[i].period);
                dataGridView1[3, i].Value = Convert.ToString(forQuery[i].firstprice);
                dataGridView1[4, i].Value = Convert.ToString(forQuery[i].fullname);
                dataGridView1[5, i].Value = Convert.ToString(forQuery[i].adress);
                dataGridView1[6, i].Value = Convert.ToString(forQuery[i].fullprice);
                dataGridView1[7, i].Value = Convert.ToString(forQuery[i].number);
            }
            index = forQuery.Count;
        }
 
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        private void SaveFileAs_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
 
            string filename = saveFileDialog1.FileName;
 
            forQuery.Clear();
 
            for (int i = 0; i < index; ++i)
            {
                forQuery.Add(
                    new book(
                         Convert.ToInt32(dataGridView1[0, i].Value),
                        Convert.ToString(dataGridView1[1, i].Value),
                        Convert.ToInt32(dataGridView1[2, i].Value),
                        Convert.ToInt32(dataGridView1[3, i].Value),
                        Convert.ToString(dataGridView1[4, i].Value),
                        Convert.ToString(dataGridView1[5, i].Value),
                        Convert.ToInt32(dataGridView1[6, i].Value),
                        Convert.ToInt32(dataGridView1[7, i].Value)
                    )
                );
            }
            string[] onwrite = new string[forQuery.Count];
            for(int i = 0; i < forQuery.Count; ++i)
            {
                onwrite[i] = "";
                onwrite[i] += Convert.ToString(forQuery[i].indexx) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].name) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].period) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].firstprice) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].fullname) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].adress) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].fullprice) + " ";
                onwrite[i] += Convert.ToString(forQuery[i].number);
            }
            System.IO.File.WriteAllLines(filename, onwrite);
        }
 
        private void SaveFile_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.FileName == "" && saveFileDialog1.FileName == "" )
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
                    return;
 
                string filename = saveFileDialog1.FileName;
 
                forQuery.Clear();
 
                for (int i = 0; i < index; ++i)
                {
                    forQuery.Add(
                        new book(
                            Convert.ToInt32(dataGridView1[0, i].Value),
                            Convert.ToString(dataGridView1[1, i].Value),
                            Convert.ToInt32(dataGridView1[2, i].Value),
                            Convert.ToInt32(dataGridView1[3, i].Value),
                            Convert.ToString(dataGridView1[4, i].Value),
                            Convert.ToString(dataGridView1[5, i].Value),
                            Convert.ToInt32(dataGridView1[6, i].Value),
                            Convert.ToInt32(dataGridView1[7, i].Value)
                        )
                    );
                }
                string[] onwrite = new string[forQuery.Count];
                for (int i = 0; i < forQuery.Count; ++i)
                {
                    onwrite[i] = "";
                    onwrite[i] += Convert.ToString(forQuery[i].indexx) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].name) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].period) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].firstprice) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].fullname) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].adress) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].fullprice) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].number);
                   
                }
                System.IO.File.WriteAllLines(filename, onwrite);
            }
            else
            {
                string filename = (openFileDialog1.FileName == "" ? saveFileDialog1.FileName : openFileDialog1.FileName);
 
                forQuery.Clear();
 
                for (int i = 0; i < index; ++i)
                {
                    forQuery.Add(
                        new book(
                            Convert.ToInt32(dataGridView1[0, i].Value),
                            Convert.ToString(dataGridView1[1, i].Value),
                            Convert.ToInt32(dataGridView1[2, i].Value),
                            Convert.ToInt32(dataGridView1[3, i].Value),
                            Convert.ToString(dataGridView1[4, i].Value),
                            Convert.ToString(dataGridView1[5, i].Value),
                            Convert.ToInt32(dataGridView1[6, i].Value),
                            Convert.ToInt32(dataGridView1[7, i].Value)
                       
                        )
                    );
                }
                string[] onwrite = new string[forQuery.Count];
                for (int i = 0; i < forQuery.Count; ++i)
                {
                    onwrite[i] = "";
                    onwrite[i] += Convert.ToString(forQuery[i].indexx) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].name) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].period) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].firstprice) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].fullname) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].adress) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].fullprice) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].number);
                   
                }
                System.IO.File.WriteAllLines(filename, onwrite);
            }
        }
 
 
 
        
        private void change_Click(object sender, EventArgs e)
        {
            int idd = dataGridView1.CurrentRow.Index;
            Form5 form5 = new Form5();
            form5.richTextBox2.Text = Convert.ToString(dataGridView1.CurrentRow.Index);
            form5.IndexOfAdd.Value = forQuery[idd].indexx;
            form5.EnterTheName1.Text = forQuery[idd].name.ToString();
            form5.PeriodOfAdd.Value = forQuery[idd].period;
            form5.FirstPriseOfAdd.Value = forQuery[idd].firstprice;
            form5.NameOfFull.Text = forQuery[idd].fullname.ToString();
            form5.richTextBox1.Text = forQuery[idd].adress.ToString();
            form5.PriceOf1PerCopy.Value = forQuery[idd].fullprice;
            form5.numericUpDown1.Value = forQuery[idd].number;
            form5.ShowDialog();
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Refresh();
        }
 
 
 
 
 
        private void button1_Click_1(object sender, EventArgs e)
        {
          
 
            Form6 form6 = new Form6();
            form6.N = Convert.ToInt32(numericUpDown1.Value);
 
            int N = Convert.ToInt32(numericUpDown1.Value);
            
            for (int i = 0; i < forQuery.Count; ++i)
            {
                if (forQuery[i].number == N)
                {
                    form6.dataGridView2.RowCount++;
                    form6.dataGridView2[0, i].Value = this.dataGridView1[0, i];
                    form6.dataGridView2[1, i].Value = this.dataGridView1[1, i];
                    form6.dataGridView2[2, i].Value = this.dataGridView1[6, i];
                    form6.dataGridView2[3, i].Value = this.dataGridView1[7, i];
                    
                }
            }
 
            form6.ShowDialog();
        }
    }
 
}
Form 2 Форма с полями для добавления

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
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 Files
{
    public partial class Form2 : Form
    {
        public bool flag = false;
      
        public Int32 indexx, period, firstprice, fullprice, number;
        public string name="", fullname="", adress="";
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void Ok_Click(object sender, EventArgs e)
        {
            flag = true;
            
            indexx = Convert.ToInt32(IndexOfAdd.Value );
 
            string name1 = EnterTheName.Text;
            for (int i = 0; i < name1.Length; ++i)
            {
                if (!char.IsLetterOrDigit(name1[i]))
                {
                    name1 = new string(name1.ToCharArray(), 0, i) + new string(name1.ToCharArray(), i + 1, name1.Length - i - 1);
                    i--;
                }
            }
            name = name1;
            EnterTheName.Text = name1;
 
            period = Convert.ToInt32(PeriodOfAdd.Value);
            firstprice = Convert.ToInt32(FirstPriseOfAdd.Value);
 
 
            string fullname1 = NameOfFull.Text;
            for (int i = 0; i < fullname1.Length; ++i)
            {
                if (!char.IsLetterOrDigit(fullname1[i]))
                {
                    fullname1 = new string(fullname1.ToCharArray(), 0, i) + new string(fullname1.ToCharArray(), i + 1, fullname1.Length - i - 1);
                    i--;
                }
            }
            fullname = fullname1;
            NameOfFull.Text = fullname1;
 
            string adress1 = richTextBox1.Text;
            for (int i = 0; i < adress1.Length; ++i)
            {
                if (!char.IsLetterOrDigit(adress1[i]))
                {
                    adress1 = new string(adress1.ToCharArray(), 0, i) + new string(adress1.ToCharArray(), i + 1, adress1.Length - i - 1);
                    i--;
                }
            }
            adress = adress1;
            richTextBox1.Text = adress1;
 
            fullprice = Convert.ToInt32(PriceOf1PerCopy.Value);
            number = Convert.ToInt32(numericUpDown1.Value);
           
 
            Close();
        }
 
        private void Cancel_Click(object sender, EventArgs e)
        {
            flag = false;
            Close();
        }
 
        
    }
}
Form 5
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
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 Files
{
    public partial class Form5 : Form
    {
        public List<Form1.book> forQuery = new List<Form1.book>();
      
 
        public string name = "", fullname = "", adress = "";
        public Int32 indexx, period, firstprice, fullprice, number;
 
        private void Ok_Click(object sender, EventArgs e)
        {
            int id = int.Parse(richTextBox2.Text);
            Form1 form1 = new Form1();
 
            var item = form1.forQuery[id];
            item.indexx = (int)IndexOfAdd.Value;
            form1.forQuery[id] = item;
            
 
            
            form1.forQuery[id].name = EnterTheName1.Text;
            form1.forQuery[id].period = Convert.ToInt32(PeriodOfAdd);
            form1.forQuery[id].firstprice = Convert.ToInt32(FirstPriseOfAdd);
            form1.forQuery[id].fullname = NameOfFull.Text;
            form1.forQuery[id].adress = richTextBox1.Text;
            form1.forQuery[id].fullprice = Convert.ToInt32(PriceOf1PerCopy);
            form1.forQuery[id].number = Convert.ToInt32(numericUpDown1);
        }
         
 
         public Form5()
        {
            InitializeComponent();
        }
 
        private void Form5_Load(object sender, EventArgs e)
        {
 
        }
    }
}
Form6 Форма с полями для изменения
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
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 Files
{
    public partial class Form6 : Form
    {
        public class book
        {
            public int indexx, fullprice, number;
            public string name;
            public book(int _indexx, string _name,  int _fullprice, int _number)
            {
                indexx = _indexx;
                name = _name;
               
                fullprice = _fullprice;
                number = _number;
            }
 
        }
 
        public List<book> forQuery = new List<book>();
 
        public int index = 0;
 
        public Form6()
        {
            InitializeComponent();
        }
 
        
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
            forQuery.Clear();
            string filename = openFileDialog1.FileName;
            foreach (string line in System.IO.File.ReadLines(filename))
            {
                string[] parsing = line.Split(' ');
                forQuery.Add(
                    new book(
 
                        Convert.ToInt32(parsing[0]),
                        Convert.ToString(parsing[1]),
                        Convert.ToInt32(parsing[2]),
                        Convert.ToInt32(parsing[3])
                        
                    )
                );
            }
            dataGridView2.RowCount = forQuery.Count + 1;
            for (int i = 0; i < forQuery.Count; ++i)
            {
                dataGridView2[0, i].Value = Convert.ToString(forQuery[i].indexx);
                dataGridView2[1, i].Value = Convert.ToString(forQuery[i].name);
                dataGridView2[2, i].Value = Convert.ToString(forQuery[i].fullprice);
                dataGridView2[3, i].Value = Convert.ToString(forQuery[i].number);
            }
            index = forQuery.Count;
        }
        public int N;
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
 
            string filename = saveFileDialog1.FileName;
 
            forQuery.Clear();
 
            for (int i = 0; i < index; ++i)
            {
                forQuery.Add(
                    new book(
                        Convert.ToInt32(dataGridView2[0, i].Value),
                        Convert.ToString(dataGridView2[1, i].Value),
                        Convert.ToInt32(dataGridView2[2, i].Value),
                        Convert.ToInt32(dataGridView2[3, i].Value)
                        
                    )
                );
            }
            string[] onwrite = new string[forQuery.Count];
          
            for (int i = 0; i < forQuery.Count; ++i)
            {
                if (N == forQuery[i].number)
                {
                    onwrite[i] = "";
                    onwrite[i] += Convert.ToString(forQuery[i].indexx) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].name) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].fullprice) + " ";
                    onwrite[i] += Convert.ToString(forQuery[i].number)+"";
                }
            }
            System.IO.File.WriteAllLines(filename, onwrite);
            Form6 form6 = new Form6();
            form6.ShowDialog();
        }
    }
}
Если еще что-нибудь надо ,говори)
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
10.05.2019, 15:24
Цитата Сообщение от Halacky Посмотреть сообщение
Если еще что-нибудь надо ,говори
не проще ли дать архив с проектом?

Добавлено через 2 минуты
Да, все через ж..у сделано.
1
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
10.05.2019, 15:41  [ТС]
Ляяя , про архив конечно ...
Стыдно ахах , ща
Сделано из говна и палок , только так и умею )
Вложения
Тип файла: zip Новая сжатая ZIP-папка.zip (9.3 Кб, 2 просмотров)
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,101
10.05.2019, 17:57
Цитата Сообщение от Halacky Посмотреть сообщение
Ляяя , про архив конечно ...
а вы хоть ами смотрели, что в том архиве есть, или правильнее - чего там нету?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2019, 17:57
Помогаю со студенческими работами здесь

Изменение данных в строке таблицы dataGridView
Необходимо изменить строку таблицы через форму, прописал следующим образом private void button2_Click(object sender, EventArgs e) ...

Последнее изменение выделенной ячейки не сохраняется в БД
Здравствуйте, имеется dataGrid. При нажатии определенной кнопки происходят изменения в ячейках выделенной строки. Столкнулся с...

Изменение цвета выделенной строки в ListBox
Я выделил в listBox некоторый элемент, нажав на кнопку, запомнил его индекс. Далее мне нужно перекрасить этот элемент listBox в другой...

Изменение стиля выделенной строки в DataGridView
В DataGridView: SelectionMode = DataGridViewSelectionMode.FullRowSelect; MultiSelect = false; Каждая строка представляет товар на...

Изменение цвета выделенной строки в таблице
Скажите пожалуйста,как выделить цветом сточку куда переходит указатель в (DBGrid1)??? в делфи это будет вот так procedure...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru