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

Обработка элементов Datagridview и запись в другой

06.04.2016, 17:23. Показов 1087. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые товарищи! Я только начинаю постигать C#.Подскажите, пожалуйста, имеется на форме два datagridview, первый заполняется либо из текст бокса либо из файла. На пример - вводим координаты X,Y,Z, там же вычисляется длина отрезка между ними L. Во втором datagridview необходимо вывести после нажатия кнопки расчетные косинусы углов, например - сosX = X / L и т.д.. Вопрос в следующем как правильнее реализовать это - через двумерный массив выбрать данные из первого или через datasource. Подскажите, пожалуйста, еще и с кодом с пояснениями, буду очень благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2016, 17:23
Ответы с готовыми решениями:

Отображение элементов матрицы в DataGridView и ее обработка
Здравствуйте, помогите пожалуйста доработать мое задание. Сейчас напишу, что требуется сделать, и скину свой проект. 1. сформировать...

выборка элементов и запись в другой массив
доброго времени суток. можно пример в котором дан массив и из него нужно выбрать элементы меньше какого то числа N и записать их в новый...

Поиск одинаковых элементов массива и запись в другой массив
Здравствуйте, проблема в названии темы. У меня записывается только 1-ый элемент, дальше идут нули или вообще выдает ошибку. Почему так ? ...

7
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,138
Записей в блоге: 1
06.04.2016, 17:55
DOBRbIU_KOT, начните с прочтения этой темы
Архитектура ПО в WinForms (FAQ & HowTo)
1
0 / 0 / 0
Регистрация: 05.04.2016
Сообщений: 5
07.04.2016, 19:32  [ТС]
Из прочитанного понял, что неправильно использовал логику построения программы. Т.е. у меня выходит, что я всю исходную информацию для расчета заношу изначально только в datagridview и оттуда уже и пляшу...что является неверным или усложняет работу. На будущее буду знать и руководствоваться данными наставлениями.

А помогите, пожалуйста, все таки, как мне в данном проекте вытащить данные из datagridview и обработать согласно описанной выше задаче. Подскажите как написать извлечение данных из datagridview в массив и деление первого столбика массива на четвертый и вывод этого элемента в другой datagridview на этой же форме. Заранее благодарю!

Добавлено через 6 часов 16 минут
или я немного не понимаю и мне необходимо через текст боксы набрать информацию в локальной базе данных и туда обращаться уже из своего приложения? а как сделать это? вводить 3 параметра в трех текстбоксах и потом заносить это в БД а потом из нее уже отображать в datagridview? и уже после обрабатывать данные из базы и создавать и дополнять ее расчетами? и уже после выводить на экран и сохранять в файл...
0
0 / 0 / 0
Регистрация: 05.04.2016
Сообщений: 5
12.04.2016, 15:45  [ТС]
Еще раз доброго времени суток!
Создал базу данных с двумя таблицами (не связанными). В первой координаты, во второй должны быть расчетные значения.
Подскажите, пожалуйста:
1. Как пустую таблицу заполнить через текстбоксы или что посоветуете на WinForm для заполнения?
2. Как осуществить редактирование элемента по id в таблице через эти же текстбоксы?
3. Как при помощи кнопки очистить все значения в БД? (если я правильно понимаю то заполненная БД сохраняет в себе информацию и на следующие сеансы работы с программой)
4. Как при помощи кнопки вычислить значения скажем длины отрезка L = sqrt(x^2 +y^2 + Z^2) и занести во вторую таблицу?

Подскажите как написать это...очень нужно!
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,138
Записей в блоге: 1
12.04.2016, 17:39
DOBRbIU_KOT, по-моему, сущность у вас одна - это отрезок.
У него есть свойства задаваемые (координаты вершин) и рассчитываемые (длина, углы)
И таблица, очевидно, должна быть одна.

Добавлено через 14 минут
Но хранение в СУБД это дело десятое
DOBRbIU_KOT, раз уж вы использует объектно-ориентированный язык для решения задачи, то пользуйтесь его парадигмами.
Создайте класс Section, определите его поля и свойства, методы
0
0 / 0 / 0
Регистрация: 05.04.2016
Сообщений: 5
13.04.2016, 13:05  [ТС]
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 WindowsFormsApplication5
{
    
    public partial class Form1 : Form
    {
        class Coordinats
        {
            public string X;
            public string Y;
            public string Z;
            public string L;
            public double Ldop;
            public double[,] arr;
        }
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            Coordinats Cor1 = new Coordinats
            {
                X = textBox1.Text,
                Y = textBox2.Text,
                Z = textBox3.Text,
                Ldop = 7500
            };
 
            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "")
            {
              
                
                int X1 = Convert.ToInt32(Cor1.X);
                int Y1 = Convert.ToInt32(Cor1.Y);
                int Z1 = Convert.ToInt32(Cor1.Z);
                double L1 = Math.Sqrt((X1 * X1) + (Y1 * Y1) + (Z1 * Z1));
                L1 = Math.Round(L1, 1);
                if (L1 <= Cor1.Ldop)
                {
                    Cor1.L = Convert.ToString(L1);
                    dataGridView1.Rows.Add(Cor1.X, Cor1.Y, Cor1.Z, Cor1.L);
                    dataGridView1.AllowUserToAddRows = false;
                }
                else
                {
                    Cor1.L = "НЕДОПУСТИМАЯ ДЛИНА";
                    dataGridView1.Rows.Add(Cor1.X, Cor1.Y, Cor1.Z, Cor1.L);
                    dataGridView1.AllowUserToAddRows = false;
                }
            }
            else MessageBox.Show("Заполните исходные данные!");
        }
 
    
    }
}
Дальше этого не могу сдвинуться...тут к сожалению только все в датагрид заносится! помогите как без БД выделить память для всего массива введенных данных и после уже обработать. уже всю голову сломал читая...сложно без примеров которые объясняют

Вот еще нашел такой вариант тут из датагрид в цикл данные перебрасываются, но это уже на созданном датагрид...а как одновременно заполнять датагрид и заносить элементы в память массива?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button2_Click(object sender, EventArgs e)
        {
           
                double[,] matrs;
                //double cosx, cosy, cosz;
 
                //создаём новый массив размера dataGridView.RowCount на dataGridView.ColumnCount
                //где RowCount количество строк у элемента, а ColumnCount количество столбцов
                matrs = new double[dataGridView1.RowCount, dataGridView1.ColumnCount];
 
                for (int i = 0; i < dataGridView1.RowCount; i++)
                {
                    for (int j = 0; j < dataGridView1.ColumnCount; j++)
                    {
                        //Преобразуем значения из ячеек в числа, и пишем в массив                          
                        matrs[i, j] = Convert.ToDouble(dataGridView1.Rows[i].Cells[j].Value);
 
                    }
                }
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,138
Записей в блоге: 1
13.04.2016, 18:03
DOBRbIU_KOT,
1. Координаты - это числовые данные, храните их в соответствующем формате
2. Расчет длины осуществляйте в классе отрезка
3. Для ввода числовых данных используйте соответствующие элементы управления: numericUpDown. Избавитесь от головной боли с конвертацией.
4. Создайте класс для хранения и работы с отрезками, внутри него - коллекцию для хранения отрезков, например, List<T>. Создавайте и удаляйте отрезки также в этом классе. Коллекция будет служить источником данных для DataGridView.
1
0 / 0 / 0
Регистрация: 05.04.2016
Сообщений: 5
13.04.2016, 18:23  [ТС]
Очень ценю Вашу помощь! Спасибо, сейчас начну следовать новым советам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2016, 18:23
Помогаю со студенческими работами здесь

Поиск уникальных элементов в массиве и запись в другой массив
есть код но он не работает, полностью копирует массив А в массив В что я не так сделал? #include &lt;stdio.h&gt; #include...

Считывание элементов матрицы из файла и запись ответов в другой текстовый файл
Помогите пожалуйста написать программу для считывания элементов матрицы размером М х N из файла для вывода на экран, и записи ответа в...

Перенос строки из одной dataGridView в другой dataGridView с Access
Всем привет!!! Подскажите пожалуйста, как из dataGridView1( подключенной к Access) перенести выделенную строку в другую dataGridView с...

Перенести данные dataGridView в другую dataGridView на другой форме
Есть Form1 на которой расположен dataGridView1. Как мне данные из этой dataGridView1 перенести на dataGridView2, которая находиться на...

Как строку из DataGridView перенести в другой DataGridView
Здравствуйте! У меня на форме 2 datagridview и 2 кнопки (&gt;&gt;, &lt;&lt;). Нужно, чтобы при нажатии на кнопку строка из грида переносилась на другой...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru