Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 20:20   #1
DolphinLover
Новичок
Джуниор
 
Регистрация: 26.03.2013
Сообщений: 1
По умолчанию Создание матрицы в датагрид

Здравствуйте!
Стоит задача в оконном приложении создать поле для заполнения матрицы, потом эту матрицу считать и перемножить. Матрица квадратная, кол-во столбцов/строк вводится пользователем...Вот тут и возникает вопрос, как осуществить создание таблицы в DataGridView так, чтобы строки и столбцы создавались автоматически, вводом их числа.
Код приложения ниже (C#), скажите, пожалуйста, что не так.
Заранее спасибо)
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace MatrixMULv5
{
    public partial class Form1 : Form
    {
        int f;

        public Form1()
        {
            InitializeComponent();
            f = (int)numericUpDown1.Value;
            dataGridView1.RowCount = f;
            dataGridView1.ColumnCount = f;
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            f = (int)numericUpDown1.Value;

            for (int i = 1; i < f; f++)
            {
                dataGridView1.Columns.Add("column" + i, "column" + i);
            }

            for (int i = 1; i < f; f++)
            {
                dataGridView1.Rows.Add();
            }
        }

         
 
        public double[,] Proizvedenie(double[,] a, double[,] b)
        {
            double[,] res = new double[f, f];
            for (int i = 0; i < f; i++)
                for (int j = 0; j < f; j++)
                    for (int k = 0; k < f; k++)
                        res[i, j] += a[i, k] * b[k, j];
            return res;
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                Convert.ToDouble(dataGridView1[e.ColumnIndex, e.RowIndex].Value);
                button1.Enabled = true;

            }
            catch
            {
                MessageBox.Show("Введен неверный символ!");
                button1.Enabled = false;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Random x = new Random();
            for (int i = 0; i < f; i++)
                for (int j = 0; j < f; j++)
                    dataGridView1[j, i].Value = Math.Round(x.NextDouble() * 20 - 10, 2);
            button1.Enabled = true;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }
       
       }
}
DolphinLover вне форума Ответить с цитированием
Старый 05.04.2013, 10:00   #2
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию

Код:
  private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            f = (int)numericUpDown1.Value;

            for (int i = 1; i < f; f++)
            {
                dataGridView1.Columns.Add("column" + i, "column" + i);
            }

            for (int i = 1; i < f; f++)
            {
                dataGridView1.Rows.Add();
            }
        }
Ничего странного не замечаете в цикле? Кажется из него никогда не выйти. К тому же поля в датагрид будут добавляться в виде алгебраической прогрессии

Последний раз редактировалось inmyacid; 05.04.2013 в 10:03.
inmyacid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание матрицы указателей Red_Fenomen Visual C++ 3 27.10.2012 20:16
Обновить датагрид Dophin WPF, UWP, WinRT, XAML 22 12.10.2012 11:31
вставить запрос sql в датагрид shimetoya C# (си шарп) 4 04.05.2011 20:56
Создание матрицы dukesoteg Помощь студентам 10 12.06.2010 18:19
создание и заполнение матрицы Blad47 Общие вопросы C/C++ 6 13.12.2008 16:38