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

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

01.06.2018, 09:42. Показов 2010. Ответов 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
18303 / 14227 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 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
18303 / 14227 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 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
9674 / 4826 / 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
9674 / 4826 / 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
9674 / 4826 / 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
9674 / 4826 / 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
9674 / 4826 / 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
9674 / 4826 / 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
9674 / 4826 / 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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru