Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Win-ni
11 / 11 / 1
Регистрация: 16.08.2011
Сообщений: 70

Как передать данные (матрицы) между формами ?

30.07.2012, 19:26. Показов 1358. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте !

Помогите, пожалуйста, новичку. Как передавать простые данные - уже прочитал. Создание статического класса - удобная вещь. Но что делать, если разные формы должны работать с некоторой матрицей, размеры которой определятся только после ввода данных (картинки)?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2012, 19:26
Ответы с готовыми решениями:

Как передать массив между формами
Здравствуйте!!!Помогите, пожалуйста!!!!!Такая проблема..есть Form1..в ней задаются входные данные и производится расчет, а результат...

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

Как передать данные между формами
Есть код для работы с текстбоксом и листбоксом. В изначальном варианте всё было так: текст бокс, кнопки, листбокс. При нажатии на кнопку...

4
 Аватар для Joke+R
41 / 41 / 4
Регистрация: 18.11.2011
Сообщений: 112
30.07.2012, 20:09
Win-ni, так же как и с простыми данными... Создайте динамический массив в статическом классе, передайте в него количество элементов, выделите память. ну и реализовать соответствующие сеты и геты...
1
 Аватар для Win-ni
11 / 11 / 1
Регистрация: 16.08.2011
Сообщений: 70
30.07.2012, 21:12  [ТС]
Я попробовал такой код (привожу фрагмент. Форма пока что одна)


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     private void заполнитьМатрицуToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int nn = 5, mm = 6;
            buf2.n = nn; buf2.m = mm; 
            for (int i = 0; i < nn; i++)
                for (int j = 0; j < mm; j++)
                    buf2.matr[i, j] = i + j;
        }
    }  // конец описания класса Form1 
 
    public static class buf2
    {  //Буфер данных
        public static int n = 4;
        public static int m = 5;
        public static int[,] matr = new int[n, m];
    }
}  // конец namespace my5_MatricaForms
Однако при заполнении матрицы получается выход за границы. Похоже, я не правильно передаю
размеры матрицы nn = 5, mm = 6 в класс buf2 или что-то не так понял в идее...
0
 Аватар для Joke+R
41 / 41 / 4
Регистрация: 18.11.2011
Сообщений: 112
31.07.2012, 12:54
не совсем так
Цитата Сообщение от Win-ni Посмотреть сообщение
public static class buf2
{ //Буфер данных
public static int n = 4;
public static int m = 5;
public static int[,] matr = new int[n, m];
}
лучше

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{ //Буфер данных
       private static int[][] matr;
       private static int n;
       private static int m;
       public static void Initialize(int _n, int _m)
       {
              n = _n;
              m = _m;              
              matr = new int[n][m];
       }
       public static void Prisvoit(int i, int j, int znachenie)
       {
              if (i > n || j > m) throw new exception("Выход за пределы массива");
              matr[i][j] = znach;
       }
}
Добавлено через 1 час 31 минуту
Либо
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static class buf2
{
static public int n;
static public int m;
static public int[][] arr;
}
 
void Zapolnit()
{
buf2.n = 5;
buf2.m = 4;
buf2.arr = new int[buf2.n][buf2.m];
for (int i=0; i<buf2.n; i++)
   buf2.arr[i][0] = 7;
}
2
 Аватар для Win-ni
11 / 11 / 1
Регистрация: 16.08.2011
Сообщений: 70
31.07.2012, 21:02  [ТС]
Спасибо!

У меня как-то естественным путём получился такой код:

1. В статическом классе :
C#
1
2
3
4
5
6
7
8
9
   public static class buf2
    {
        public static int h_kart, w_kart;
        public static int[,] kart_pixels;
        public static int[,] obr_pixels;
        public static float[,] kart_jark;
        public static int k_22;
        public static float k_33;
    }
2. На форме:
C#
1
2
3
4
5
6
7
8
9
10
11
. . . . . .
                oFD2.InitialDirectory = Application.StartupPath;
                Bitmap bm1 = new Bitmap(oFD2.FileName, true);
                pB2.Image = bm1;
                buf2.w_kart = bm1.Width;
                buf2.h_kart = bm1.Height;
                this.Text = "Картинка: " + buf2.w_kart.ToString() + " x " +
                    buf2.h_kart.ToString();
                buf2.kart_pixels = new int[buf2.w_kart, buf2.h_kart];
                buf2.kart_jark = new float[buf2.w_kart, buf2.h_kart];
. . .. ...
Работает пока что нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2012, 21:02
Помогаю со студенческими работами здесь

Как передать данные между формами
Еще раз всем привет. У меня на Form1 есть 2 radioButton (radioButton1 и radioButton2), мне нужно передать включенный radioButton на...

Как передать данные между формами, без Show/ShowDialog
Есть 3 формы: 1. MainForm, которая является меню и родительской формой, на ней имеются кнопки в виде toolstrip, которые, запускают...

передать данные между формами
Задание такое: на основной форме нажимаем кнопку &quot;ввести данные&quot;- открывается диалоговое окно, там вводим три типа данных(высоту, радиус,...

Как передать значение IP-адрес между формами
Borland C++ 6 Имеется DBGrid с колонкой Айпи-адреса. Когда я ставлю курсор на ячейке с айпи и нажимаю Butoon &quot;HTTPS&quot; в новой...

Как передать значение переменной между формами?
Доброго времени суток! Как передать значение переменной из form1 в form2?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru