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

Передать данные RichTextBox с одной формы в другую

01.06.2018, 09:42. Показов 1952. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть две формы, MyForm и SaveDialog, в MyForm находиться richtextbox, в SaveDialog кнопки - Yes, No
как передать то что находиться в richtextbox если я хочу написать функцию для обработчиков кнопок


Форма SaveDialog
C++
1
2
3
4
5
6
7
8
9
10
11
12
void saveChanges()
        {
            SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;
            saveFile1->DefaultExt = "*.doc";
            saveFile1->Filter = "doc Files|*.doc";
            if (saveFile1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
                saveFile1->FileName->Length > 0)
            {
                //пишет что richtextbox не определен
richTextBox1->SaveFile(saveFile1->FileName, RichTextBoxStreamType::RichText);
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2018, 09:42
Ответы с готовыми решениями:

Передать данные с одной формы на другую
вопрос..есть 2 формы. на одной в текстбокс выводиться инфа. как сделать так, чтобы при запуске новой формы записи с текстбоксов на 1 форме...

Как передать данные из одной формы в другую
Проблема со следующим примером из этой темы: Form1 main = this.Owner as Form1; if(main != null) { string s =...

Как из одной формы передать данные в другую?
Всем привет! Нужна помощь! Ситуация такая, внутри одной программы, есть две формы Form1 и Form2. На Form1 расположены button1 и textBox1....

23
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18267 / 14190 / 5368
Регистрация: 17.03.2014
Сообщений: 28,879
Записей в блоге: 1
01.06.2018, 15:34
Yan Chenrysh, тут возможны варианты.

1) Пускай SaveDialog возвращает путь для сохранения в форму откуда он вызван. Тогда проблем с доступом просто не возникнет.

2) Передать в SaveDialog ссылку на richTextBox1. Например через конструктор.
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 12:11  [ТС]
Как правильно передавать ссылку в конструктор?
Делал так как на фото, но у меня ошибка что "MyForm::RichTextBox1 не доступно.
Там еще сказано что нужно вносить методы в cpp файлы, я так и не понял какие.
Вот ссылка на источник Ответы на 7 самых частых вопросов по Windows Forms, C++/CLI Edition
Миниатюры
Передать данные RichTextBox с одной формы в другую  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18267 / 14190 / 5368
Регистрация: 17.03.2014
Сообщений: 28,879
Записей в блоге: 1
03.06.2018, 14:18
Yan Chenrysh, измени модифкатор доступа для RichTextBox1 на public
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 14:27  [ТС]
Все сделал и меня куча ошибок
C++
1
2
3
4
5
6
7
8
9
public: 
        SaveDialog(MyForm^ f1)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
            richTextBox2->Text = f1->richTextBox1->Text;
        }
C++
1
2
3
4
5
6
7
private: System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        if (richTextBox1->Text != "")
        {
            SaveDialog^ f = gcnew SaveDialog(this);
            f->ShowDialog();
        }
    }
Миниатюры
Передать данные RichTextBox с одной формы в другую  
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 15:59
Yan Chenrysh, меня смущает ошибка "Возможно, неправильные параметры функции main. Рекомендуемый вариант - "int main(Platform::Array<Platform::String^>^ argv)""
Такие названия типов характерны для WinRT. Какой проект вы создали? Обратите внимание, что проекты C++/CLI Windows Forms в последних версиях студии недоступны и их нужно создавать вручную: Создание графического приложения (Windows Forms) в Visual Studio
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 16:38  [ТС]
Я создал пустой проект CLR, и в него уже добавил UI Windows Forms. Несколько проектов делал так и все нормально работает.

Добавлено через 10 минут
У меня есть текстовый редактор (2 формы), на главной форме есть richTextBox и меню с пунктом "Создать новый файл", при нажатии на который открывается вторая форма с кнопками "да" "нет" "отмена" как сделать так что бы при нажатии на "да" текст с первой формы сохранялся в файл, и при нажатии на "нет" текст с первой формы удалялся?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 16:43
Yan Chenrysh, приведите весь код из данного файла. Думаю, где-то выше есть синтаксическая или другая мелкая ошибка.
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 17:37  [ТС]
tezaurismosis,
Сейчас сделаю

Добавлено через 5 минут
tezaurismosis,
Вот
MyForm.h
224 строка вызываю вторую форму
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
#pragma once
#include "SaveDialog.h"
 
namespace edtr3 {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
 
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::MenuStrip^  menuStrip1;
    protected:
    private: System::Windows::Forms::ToolStripMenuItem^  menuToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  createToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  openToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  saveToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  saveAsToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  colorToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  fontToolStripMenuItem;
    public: System::Windows::Forms::RichTextBox^  richTextBox1;
    private: System::Windows::Forms::OpenFileDialog^  openFileDialog1;
    private: System::Windows::Forms::SaveFileDialog^  saveFileDialog1;
    private: System::Windows::Forms::FontDialog^  fontDialog1;
    private: System::Windows::Forms::ColorDialog^  colorDialog1;
 
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
            this->menuToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->createToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->openToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->saveAsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->colorToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->fontToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
            this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
            this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
            this->fontDialog1 = (gcnew System::Windows::Forms::FontDialog());
            this->colorDialog1 = (gcnew System::Windows::Forms::ColorDialog());
            this->menuStrip1->SuspendLayout();
            this->SuspendLayout();
            // 
            // menuStrip1
            // 
            this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(3) {
                this->menuToolStripMenuItem,
                    this->colorToolStripMenuItem, this->fontToolStripMenuItem
            });
            this->menuStrip1->Location = System::Drawing::Point(0, 0);
            this->menuStrip1->Name = L"menuStrip1";
            this->menuStrip1->Size = System::Drawing::Size(427, 24);
            this->menuStrip1->TabIndex = 0;
            this->menuStrip1->Text = L"menuStrip1";
            // 
            // menuToolStripMenuItem
            // 
            this->menuToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(4) {
                this->createToolStripMenuItem,
                    this->openToolStripMenuItem, this->saveToolStripMenuItem, this->saveAsToolStripMenuItem
            });
            this->menuToolStripMenuItem->Name = L"menuToolStripMenuItem";
            this->menuToolStripMenuItem->Size = System::Drawing::Size(50, 20);
            this->menuToolStripMenuItem->Text = L"Menu";
            // 
            // createToolStripMenuItem
            // 
            this->createToolStripMenuItem->Name = L"createToolStripMenuItem";
            this->createToolStripMenuItem->Size = System::Drawing::Size(180, 22);
            this->createToolStripMenuItem->Text = L"Create";
            this->createToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::createToolStripMenuItem_Click);
            // 
            // openToolStripMenuItem
            // 
            this->openToolStripMenuItem->Name = L"openToolStripMenuItem";
            this->openToolStripMenuItem->Size = System::Drawing::Size(180, 22);
            this->openToolStripMenuItem->Text = L"Open";
            this->openToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::openToolStripMenuItem_Click);
            // 
            // saveToolStripMenuItem
            // 
            this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
            this->saveToolStripMenuItem->Size = System::Drawing::Size(180, 22);
            this->saveToolStripMenuItem->Text = L"Save file";
            this->saveToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::saveToolStripMenuItem_Click);
            // 
            // saveAsToolStripMenuItem
            // 
            this->saveAsToolStripMenuItem->Name = L"saveAsToolStripMenuItem";
            this->saveAsToolStripMenuItem->Size = System::Drawing::Size(180, 22);
            this->saveAsToolStripMenuItem->Text = L"Save file as";
            this->saveAsToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::saveAsToolStripMenuItem_Click);
            // 
            // colorToolStripMenuItem
            // 
            this->colorToolStripMenuItem->Name = L"colorToolStripMenuItem";
            this->colorToolStripMenuItem->Size = System::Drawing::Size(48, 20);
            this->colorToolStripMenuItem->Text = L"Color";
            this->colorToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::colorToolStripMenuItem_Click);
            // 
            // fontToolStripMenuItem
            // 
            this->fontToolStripMenuItem->Name = L"fontToolStripMenuItem";
            this->fontToolStripMenuItem->Size = System::Drawing::Size(43, 20);
            this->fontToolStripMenuItem->Text = L"Font";
            this->fontToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::fontToolStripMenuItem_Click);
            // 
            // richTextBox1
            // 
            this->richTextBox1->Dock = System::Windows::Forms::DockStyle::Fill;
            this->richTextBox1->Location = System::Drawing::Point(0, 24);
            this->richTextBox1->Name = L"richTextBox1";
            this->richTextBox1->Size = System::Drawing::Size(427, 289);
            this->richTextBox1->TabIndex = 1;
            this->richTextBox1->Text = L"";
            // 
            // openFileDialog1
            // 
            this->openFileDialog1->FileName = L"openFileDialog1";
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(427, 313);
            this->Controls->Add(this->richTextBox1);
            this->Controls->Add(this->menuStrip1);
            this->MainMenuStrip = this->menuStrip1;
            this->Name = L"MyForm";
            this->Text = L"Text Editor";
            this->menuStrip1->ResumeLayout(false);
            this->menuStrip1->PerformLayout();
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
 
 
#pragma endregion
    private: System::Void openToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
        {
            richTextBox1->LoadFile(openFileDialog1->FileName, RichTextBoxStreamType::RichText);
        }
    }
 
    private: System::Void saveToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
            SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;
            saveFile1->DefaultExt = "*.doc";
            saveFile1->Filter = "doc Files|*.doc";
            if (saveFile1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
                saveFile1->FileName->Length > 0)
            {
                richTextBox1->SaveFile(saveFile1->FileName, RichTextBoxStreamType::RichText);
            }
    }
 
    private: System::Void fontToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        if (fontDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
        {
            richTextBox1->Font = fontDialog1->Font;
        }
    }
 
    private: System::Void colorToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
        { 
            int startRange = richTextBox1->SelectionStart;
            int lenghtRange = richTextBox1->SelectionLength;
            richTextBox1->SelectionColor = colorDialog1->Color; 
        }
    }
 
    private: System::Void saveAsToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;
        saveFile1->DefaultExt = "*.rtf";
        saveFile1->Filter = "RTF Files|*.rtf";
        if (saveFile1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
            saveFile1->FileName->Length > 0)
        {
            richTextBox1->SaveFile(saveFile1->FileName, RichTextBoxStreamType::RichText);
        }
    }
 
    private: System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
        if (richTextBox1->Text != "")
        {
            SaveDialog^ f = gcnew SaveDialog(this);
            f->ShowDialog();
        }
    }
 
    private: System::Void MyForm_FormClosing(System::Object^  sender, System::EventArgs^  e){
    }
};
}
SaveDialog.h
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#pragma once
#include <string>
namespace edtr3 {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    /// <summary>
    /// Сводка для SaveDialog
    /// </summary>
    public ref class SaveDialog : public System::Windows::Forms::Form
    {
    public: 
        SaveDialog(MyForm^ f1)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
            richTextBox2->Text = f1->richTextBox1->Text;
        }
 
 
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~SaveDialog()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Label^  label1;
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::Button^  button2;
    private: System::Windows::Forms::Button^  button3;
    private: System::Windows::Forms::SaveFileDialog^  saveFileDialog1;
    public: System::Windows::Forms::RichTextBox^  richTextBox2;
 
    protected:
 
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->label1 = (gcnew System::Windows::Forms::Label());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->button3 = (gcnew System::Windows::Forms::Button());
            this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
            this->richTextBox2 = (gcnew System::Windows::Forms::RichTextBox());
            this->SuspendLayout();
            // 
            // label1
            // 
            this->label1->AutoSize = true;
            this->label1->Font = (gcnew System::Drawing::Font(L"Tahoma", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
                static_cast<System::Byte>(204)));
            this->label1->Location = System::Drawing::Point(65, 32);
            this->label1->Name = L"label1";
            this->label1->Size = System::Drawing::Size(129, 16);
            this->label1->TabIndex = 0;
            this->label1->Text = L"Save changes to file\?";
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(12, 75);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 1;
            this->button1->Text = L"Yes";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &SaveDialog::button1_Click);
            // 
            // button2
            // 
            this->button2->Location = System::Drawing::Point(93, 75);
            this->button2->Name = L"button2";
            this->button2->Size = System::Drawing::Size(75, 23);
            this->button2->TabIndex = 2;
            this->button2->Text = L"No";
            this->button2->UseVisualStyleBackColor = true;
            this->button2->Click += gcnew System::EventHandler(this, &SaveDialog::button2_Click);
            // 
            // button3
            // 
            this->button3->Location = System::Drawing::Point(174, 75);
            this->button3->Name = L"button3";
            this->button3->Size = System::Drawing::Size(75, 23);
            this->button3->TabIndex = 3;
            this->button3->Text = L"Cancel";
            this->button3->UseVisualStyleBackColor = true;
            this->button3->Click += gcnew System::EventHandler(this, &SaveDialog::button3_Click);
            // 
            // richTextBox2
            // 
            this->richTextBox2->Location = System::Drawing::Point(0, -2);
            this->richTextBox2->Name = L"richTextBox2";
            this->richTextBox2->Size = System::Drawing::Size(262, 31);
            this->richTextBox2->TabIndex = 4;
            this->richTextBox2->Text = L"";
            // 
            // SaveDialog
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(262, 130);
            this->ControlBox = false;
            this->Controls->Add(this->richTextBox2);
            this->Controls->Add(this->button3);
            this->Controls->Add(this->button2);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->label1);
            this->Name = L"SaveDialog";
            this->Text = L"SaveDialog";
            this->Load += gcnew System::EventHandler(this, &SaveDialog::SaveDialog_Load);
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
        
        
 
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        SaveFileDialog^ saveFile2 = gcnew SaveFileDialog;
        saveFile2->DefaultExt = "*.doc";
        saveFile2->Filter = "doc Files|*.doc";
        if (saveFile2->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
            saveFile2->FileName->Length > 0)
        {
            richTextBox2->SaveFile(saveFile2->FileName, RichTextBoxStreamType::RichText);
        }
        Close();
    }
    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
 
    }
 
    private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
        Close();
    }
 
    private: System::Void SaveDialog_Load(System::Object^  sender, System::EventArgs^  e) {
    }
};
}
MyForm.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "MyForm.h"
 
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
void main(array<String^>^args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    edtr3::MyForm form;
    Application::Run(%form);
}
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 18:03
В файле SaveDialog.h класс MyForm не виден. Лучше передайте в конструктор сам RichTextBox
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 18:22  [ТС]
tezaurismosis, ну я сделал а как мне теперь с второй формы обращаться к первой?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 18:27
Хотя проще будет передавать даже не RichTextBox, а строку
SaveDialog.h
C++
1
2
3
4
5
SaveDialog(String^ text)
{
    InitializeComponent();
    richTextBox2->Text = text;
}
MyForm.h
C++
1
2
3
4
5
6
7
private: System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    if (richTextBox1->Text != "")
    {
        SaveDialog^ f = gcnew SaveDialog(richTextBox1->Text);
        f->ShowDialog();
    }
}
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 18:29  [ТС]
tezaurismosis, хорошо, а как теперь с второй формы обратить к richtextbox первой, и как сохранить исходное форматирование при передаче?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 18:31
Yan Chenrysh, если это нужно, тогда передаём RichTextBox
SaveDialog.h
C++
1
2
3
4
5
SaveDialog(RichTextBox^ rtb)
{
    InitializeComponent();
    richTextBox2->Text = rtb->Text;
}
MyForm.h
C++
1
2
3
4
5
6
7
private: System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    if (richTextBox1->Text != "")
    {
        SaveDialog^ f = gcnew SaveDialog(richTextBox1);
        f->ShowDialog();
    }
}
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 18:37  [ТС]
tezaurismosis, не знаю как обратиться к richTextBox первой формы
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 18:49
Цитата Сообщение от Yan Chenrysh Посмотреть сообщение
Там еще сказано что нужно вносить методы в cpp файлы, я так и не понял какие.
Всё, теперь понял. В .cpp-файлы нужно вынести методы, которые обращаются к другой форме.
В вашем коде из MyForm.h нужно вынести createToolStripMenuItem_Click()
Из SaveDialog.h - конструктор (SaveDialog())
1
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 18:50  [ТС]
спасибо, а всё остальное так и оставляем?
0
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 18:57  [ТС]
tezaurismosis, и опять ошибки, как вообще правильно переносить конструктор?
Миниатюры
Передать данные RichTextBox с одной формы в другую   Передать данные RichTextBox с одной формы в другую  
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.06.2018, 19:03
Yan Chenrysh, смотрите пример в закреплённой теме, на которую вы ссылались
Про первую картинку - если реализация метода отделена от его определения, нужно указывать имя класса:
C++
1
SaveDialog::SaveDialog(RichTextBox^ rtb)
На второй картинке вы вынесли метод не в тот .cpp-файл. В файл с main() ничего выносить не нужно.
1
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 33
03.06.2018, 19:39  [ТС]
tezaurismosis,
Вот я создал метод для обработчика
C++
1
2
3
4
private: 
        System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    
    }
вот cpp файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "MyForm.h"
#include "SaveDialog.h"
 
namespace edtr3{
 
 System::Void createToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
     if (richTextBox1->Text != "")
     {
         SaveDialog^ f = gcnew SaveDialog(richTextBox1);
         f->ShowDialog();
     }
}
а на richTextBox1 пишет что не определен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2018, 19:39
Помогаю со студенческими работами здесь

Передать данные из одной формы в другую
форма 1 public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

Передать данные с одной формы в другую
Есть две формы нужно чтоб при нажатии кнопки в другой форме изменилось название label1. Но в первой форме пишет Элемент &quot;label1&quot;...

Передать данные из одной формы в другую
Надо передать данные из одной формы в другую.Использую свойство &quot;родитель&quot; и что-то не работает.. В теме &quot;Ответы на 7 самых частых...

Передать данные из одной формы в другую
Есть 2 формы, при запуске открывается 1 форма, на ней есть кнопка, по нажатию на эту кнопку из 2-й формы берётся текст из Label2 и на...

Передать данные из одной формы в другую
Доброй ночи(у меня) и доброго времени суток всем. Столкнулся с проблемой, что не могу передать правильно через сигналы и слоты...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru