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

Как оптимальнее представить матрицу на форме

10.09.2012, 00:01. Показов 2859. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте дорогие форумчане!
Начинаю изучение C#. Поставил себе задачу написать программу, которая складывает матрицы.
Причем желательно, чтобы это было визуально красиво.
То есть в оформлении, как раз то и проблема.

Я могу сделать его с помощью TextBox, выглядит это примерно так

Но по-моему делать это с помощью TextBox глупо. Так как я хочу, чтобы складывались матрицы любых размеров. А если это будут матрицы 5х5 или 10х10, страшно подумать сколько нужно TextBox.

Может быть стоит рисовать сетку матриц. И как-нибудь вписывать туда числа?
Но в рисовании на C# я ничего пока не понимаю.

Так вот, как мне реализовать это? Подскажите, пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2012, 00:01
Ответы с готовыми решениями:

Что оптимальнее: передавать матрицу как аргумент, или же формировать её внутри функции?
Добрый вечер, уважаемые форумчане! Я столкнулась с таким вопросом в процессе оптимизации моей программы: что оптимальнее, передавать...

Чем оптимальнее нарисовать линии на форме?
При создании формы для рисования горизонтальных и вертикальных линий применяю label'ы, подбирая в окне свойств цвет (BackColor) и размеры....

Как представить на форме табличные данные
Здравствуйте! Я пишу программу на WinForms (C#). Нужно, чтобы на форме отображалась таблица, в которой содержится 95 строк и 5...

4
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.09.2012, 00:22
DataGridView вам поможет.
0
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
10.09.2012, 00:22
datagridview чем не устраивает?

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
 //------------Метод-считывающий-матрицу-из-DataGridView-в-массив-----------------------------
        /// <summary>
        /// Метод считывающий матрицу из указанного DataGridView в массив.
        /// </summary>
        /// <param name="dataGridView">DataGridView Из которого считываем матрицу.</param>
        /// <returns></returns>
        public static double[,] Read(DataGridView dataGridView)
        {
            double[,] matrs;
            //создаём новый массив размера dataGridView.RowCount на dataGridView.ColumnCount
            //где RowCount количество строк у элемента, а ColumnCount количество столбцов
            matrs = new double[dataGridView.RowCount, dataGridView.ColumnCount];
            try//отлов исключений
            {
                for (int i = 0; i < dataGridView.RowCount; i++)
                {
                    for (int j = 0; j < dataGridView.ColumnCount; j++)
                    {
                        //Преобразуем значения из ячеек в числа, и пишем в массив
                        //Если не число то происходит вызов исключения и его обработка
                        matrs[i, j] = Convert.ToDouble(dataGridView.Rows[i].Cells[j].Value);
                    }
                }
            }
            catch (System.Exception e)//обработка пойманного исключения
            {
                throw new matricException(e.Message + "\n(Использование букв и символов недопустимо!)");
                // MessageBox.Show(e.Message + "\n(Использование букв и символов недопустимо!)", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return matrs;
        }
        //------------Метод-записывающий-матрицу-из-массива-в-DataGridView---------------------------
        /// <summary>
        /// Метод записывающий матрицу из массива в указанный DataGridView
        /// </summary>
        /// <param name="matr">Матрица которую выводим в DataGridView</param>
        /// <param name="dataGridView">DataGridView в который выводим</param>
        public static void Write(double[,] matr, DataGridView dataGridView)
        {
            //указываем контроллу в который пишем количество строк и столбцов
                dataGridView.RowCount = matr.GetLength(0);
                dataGridView.ColumnCount = matr.GetLength(1);
                for (int i = 0; i < matr.GetLength(0); i++)
                {
                    for (int j = 0; j < matr.GetLength(1); j++)
                    {
                        //пишем значения из массива в ячейки контролла
                        dataGridView.Rows[i].Cells[j].Value = matr[i, j];
                    }
                }
 
        }
1
11 / 11 / 4
Регистрация: 14.09.2009
Сообщений: 134
10.09.2012, 00:39
Да, можно на XNA рисовать - но это для игроделов).
компонент datagridview называется.Найти можно когда создаешь windows application.
выкидываешь его на рабочее поле.

после того как выкинул этот компонент на нем будет черный фон и это все отлично.
далее жмешь(выделяешь чтобы фокус был) на компонент F4(свойства).
Затем ищешь там поле с надписью "columns".Нажимаешь на многоточие кнопку.Там add. Затем в Туре -надо выбрать datagridtextboxcolumn. если интересно изучаешь... далее add.
и так повторяешь операцию сколько там тебе надо колумов.

C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Form1_Load(object sender, EventArgs e)//событие при загрузки формы 
//2 раза на форму нажимаешь появится код и событие там пишем
        {
Random rd = new Random();
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                for (int j = 0; j < dataGridView1.RowCount; j++)
                {
                    dataGridView1[i, j].Value = rd.Next(0, 50);
                }
            }
        }
в крации что тут твориться. т.к. дата грид вью - представляется как массив, то обращаться к нему надо, как к двумерному массиву dataGridView1[i, j].Value, где i - это колонка(вертикаль), j строка( горизонталь).
так же они имеют свое количество dataGridView1.ColumnCount, и dataGridView1.RowCount.
заполняю рандомом строки. про рандом сам почитай.
1
2 / 2 / 1
Регистрация: 09.09.2012
Сообщений: 17
10.09.2012, 00:45  [ТС]
Огромное всем спасибо, буду разбираться с ним
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.09.2012, 00:45
Помогаю со студенческими работами здесь

Как данные на форме представить в виде таблицы
Пользователь вводит данные: номер вопроса и вопрос. Нажимает ОК и нужно чтобы этоти данные добавились в табличку. Все это на одной форме....

Как представить число в Java в экспоненциальной форме ?
Здравствуйте! У меня есть число BigDecimal. Например: BigDecimal num = new BigDecimal(&quot;10000000000000&quot;); Я хочу выводить его как...

Как представить матрицу произведением двух матриц?
Есть квадратная матрица, о которой известно, что она представляется в таком виде: A=B{B}^{T}. Нужно найти матрицу B (матрица А дана). Как...

Как представить заданные числа с плавающей запятой в нормализованной форме одинарной точности?
у меня даны два числа X=65 и Y=63 в десятичной системе счисления. Я не понимаю как мантиссу записать. Помогите пожалуйста :) Еще надо...

Как отобразить матрицу на форме
Здравствуйте ! Как хорошо в Делфи - там есть StringGrid. В .Net не могу найти класса для отображения матриц (не имеющих отношения к...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru