Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
1

Как передать массив структур из одной формы в другую

01.03.2013, 12:16. Показов 1877. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, не получается передать массив структур из одной формы в другую.
Понимаю, что нужно выполнять упаковку-распаковку, но ничего не получается.
В первой форме создается ссылочный объект:
C#
1
public object o_put;
А массив структур создается и заполняется значениями в этой же форме:
C#
1
2
3
4
5
6
7
8
9
Putevka[] pt1 = new Putevka[10];
                                
          for (int i = 0; i < 10; i++)
          {
              pt1[i].country = "str" + i.ToString ();
              pt1[i].cena_ot2 = 1000 * i;
          }
           // выполняется упаковка
            o_put = pt1;
В другой форме пытаюсь выполнить распаковку таким образом:
C#
1
Putevka[] pt = (Putevka[])frm1.o_put;
Где frm1 - ссылка на первую форму.
Видит o_put, проходит компиляция, но на выполнении выдает ошибку:
Unable to cast object of type 'Putevka[]' to type 'Putevka[]'
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2013, 12:16
Ответы с готовыми решениями:

Как передать массив из одной формы в другую
есть одна форма, у нее в коде присутствует и заполняется (считаются значения функции)double Uu =...

Как передать ступенчатый массив из одной формы в другую без её открытия?
....

Передать глобальный массив из одной формы в другую
Есть массив и переменная namespace WindowsFormsApplication5 { public partial class Form1 :...

Как передать данные из одной формы в другую
Пишу курсовую на wpf, интересует такой вопрос как передать данные из одной формы в другую.

6
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,227
01.03.2013, 12:49 2
Во-первых, упаковка тут вообще не при делах.
Во-вторых, структура, описывающая путевку, должна быть объявлена где-то в одном месте, а не везде, где она используется.
0
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
01.03.2013, 13:02  [ТС] 3
А можно узнать, что здесь при делах?
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
01.03.2013, 13:08 4
ita2907,
Передайте во вторую форму ссылку на этот массив
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
namespace WindowsFormsApplication6
{
    public struct Putevka
    {
        public string country;
        public int cena;
    }
    
    public partial class Form1 : Form
    {  
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {           
            Putevka[] pt1 = new Putevka[10];
 
            for (int i = 0; i < pt1.Length; i++)
            {
                pt1[i].country = "str" + i.ToString();
                pt1[i].cena = 1000 * i;
            }
 
            Form2 form2 = new Form2(pt1);
            form2.ShowDialog();
 
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
namespace WindowsFormsApplication6
{
    public partial class Form2 : Form
    {
        public Form2(Putevka[] pt1)
        {
            InitializeComponent();
        }
    }
}
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,227
01.03.2013, 13:11 5
Цитата Сообщение от ita2907 Посмотреть сообщение
А можно узнать, что здесь при делах?
Полиморфизм.
Упаковка — это совсем другое.
0
25 / 25 / 7
Регистрация: 27.02.2013
Сообщений: 113
01.03.2013, 14:01  [ТС] 6
Спасибо, конечно, но на операторе
C#
1
Form2 frm2 = new Form2(pt1);
Выдает сообщение во время компиляции:
Error 1 The best overloaded method match for 'Forms_and_Struct.Form2.Form2(Forms_and_Struct.Form2.Putevka[])' has some invalid arguments
И на этом же операторе выдает еще одно сообщение:
Error 2 Argument '1': cannot convert from 'Forms_and_Struct.Form1.Putevka[]' to 'Forms_and_Struct.Form2.Putevka[]'

И в конечном итоге не работает.
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
01.03.2013, 14:05 7
0
01.03.2013, 14:05
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2013, 14:05
Помогаю со студенческими работами здесь

Как передать параметры из одной формы в другую
Из одной формы Access открывается другая. Как в неё передать параметры? Где какие процедуры нужно...

Как передать данные из одной формы в другую?
нужна помощь! привожу кусок кода! ... uses ...Unit_Error; // использую его!! {$R *.dfm} ...

Как передать Dictionary с одной формы на другую?
Доброго времени суток товарищи! Что-то никак не разберусь как можно передать Dictionary с одной...

Как передать маркер из одной формы в другую?
Короче надо сделать что-то типа вот такого: TBookmark Marker =Table1-&gt;GetBookmark();...

Как из одной формы передать данные в другую
Доброго времени суток, уважаемые форумчане. Не могли б вы на пальцах объяснить как из одной формы...

Как передать значение из одной формы в другую?
Столкнулся с очередной проблемой В одной форме у меня проходит тест, подсчитывается набранный...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Что такое хорошо и что такое плохо, вид сбоку. Индивид и общество - грань не нарушения.
Hrethgir 18.01.2025
В моей личной жизни и времени, я рассуждаю категорией "хуже-лучше", в том плане, когда меня спросили например - "а зачем ты делаешь свой процессор?", то я ответил - "чтобы сделать свою жизнь лучше". . .
Передача по ссылке или по значению в Java?
InfoMaster 18.01.2025
В мире программирования на Java одним из ключевых аспектов, требующих глубокого понимания, является механизм передачи параметров в методы. Этот фундаментальный концепт часто становится источником. . .
Тернарный условный оператор в Python
InfoMaster 18.01.2025
В мире программирования существует множество инструментов и конструкций, позволяющих создавать эффективный и лаконичный код. Одним из таких инструментов является тернарный условный оператор, который. . .
Как удалить неотслеживаемые файлы из рабочего дерева Git
InfoMaster 18.01.2025
В процессе разработки программного обеспечения с использованием системы контроля версий Git часто возникает необходимость в управлении неотслеживаемыми файлами. Неотслеживаемые файлы (untracked. . .
Что делает код if __name__ == "__main__": в Python
InfoMaster 18.01.2025
В мире программирования на Python существует множество важных концепций, и одной из наиболее интересных является конструкция if __name__ == "__main__". Эта специальная конструкция играет ключевую. . .
Как заставить Git забыть об отслеживаемом файле, добавленном в .gitignore
InfoMaster 18.01.2025
В мире разработки программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, позволяя эффективно отслеживать изменения в коде и управлять ими. Однако. . .
Что означает use strict в JavaScript и для чего используется
InfoMaster 18.01.2025
В мире современной веб-разработки JavaScript играет ключевую роль как один из основных языков программирования. По мере его эволюции возникла необходимость в механизмах, которые помогли бы. . .
Как работать со скрытыми (hidden) элементами в jQuery
InfoMaster 18.01.2025
В современной веб-разработке управление видимостью элементов на странице является одним из ключевых аспектов создания интерактивных пользовательских интерфейсов. jQuery предоставляет мощный набор. . .
Как переключаться между ветками (Branch) с помощью checkout в Git
InfoMaster 18.01.2025
Ветки в Git являются одной из ключевых концепций для управления версионностью кода, позволяя разработчикам эффективно работать в команде и параллельно развивать программные проекты. Каждый новый. . .
Что такое стек и куча, чем они отличаются и где находятся
InfoMaster 18.01.2025
Понимание основных концепций памяти в программировании В мире современного программирования эффективное управление памятью играет ключевую роль в создании производительных и надежных приложений. . . .
Как использовать комментарии в JSON
InfoMaster 18.01.2025
JSON (JavaScript Object Notation) представляет собой легкий и широко используемый формат обмена данными, который стал стандартом де-факто для веб-приложений и программных интерфейсов. При работе с. . .
Как заставить git pull перезаписать локальные файлы в Git
InfoMaster 18.01.2025
Проблема перезаписи локальных файлов в Git При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо синхронизировать локальный репозиторий с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru