Читайте также:
|
|
Название | Описание | |
Chars | Берет символ из указанной позиции в текущем объекте String. | |
Length | Определяет количество символов в текущем объекте String. |
Событие – изменение текста в окне текстового редактора
Для установки этого события требуется, находясь в режиме редактора формы, выделить с помощью мыши нужный объект формы - RichTextBox и открыть для него окно среды - Properties нажав Alt+Enter или левую кнопку мыши – в появившемся окне выбрать нижнюю строку Properties.
В открывшемся окне Properties выбрать список событий, для чего необходимо нажать значок «молния» в заголовке окна. Два раза щёлкнуть мышью по пустому полю справа от поля TextChanged. В результате будет сгенерирован обработчик события:
private:
System::Void richTextBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
}
В текст этого обработчика необходимо включить строку изменения флага flag -
flag=1;
Cледующие строки взяты из MSDN для данного обработчика:
try
{
// Convert the text to a Double and determine if it is a
// negative number.
if (Double::Parse(richTextBox1->Text) < 0)
{
// If the number is negative, display it in Red.
richTextBox1->ForeColor = Color::Red;
}
else
{
// If the number is not negative, display it in Black.
richTextBox1->ForeColor = Color::Black;
}
}
catch (Exception^)
{
// If there is an error, display the text using the system colors.
richTextBox1->ForeColor = SystemColors::ControlText;
}
Кроме обработчиков событий в файле Form1.h инициализируютя включенные в форму компоненты – InitializeComponent.
void InitializeComponent(void)
{
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->toolStripMenuItem1 = (gcnew system::Windows::Forms::ToolStripMenuItem());
this->toolStripMenuItem2 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStripMenuItem3 = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
this->menuStrip1->SuspendLayout();
this->SuspendLayout();
//
// menuStrip1
//
...
//
// toolStripMenuItem1
//
...
//
// toolStripMenuItem2
//
...
//
// toolStripMenuItem3
//
...
//
// saveToolStripMenuItem
//
...
//
// openFileDialog1
//
...
//
// saveFileDialog1
//
...
//
// richTextBox1
//
...
//
// Form1
//
...
}
Многоточие заменяет строки, которые можно посмотреть в сгенерированном листинге.
Система делает многое, но некоторые строки необходимо включить в листинг вручную:
- к строкам using необходимо добавить следующие:
using namespace System::IO;
using namespace System::Text;
- для получения возможности контролировать изменение файла необходимо включить глобальную переменную flag в поле public класса Form1:
public ref class Form1: public System::Windows::Forms::Form
{
public:
int flag;//флаг для обозначения факта изменения текста в окне редактора текста
Form1(void)
{ …
Работа с файлами
Для работы с файлами необходимо создать соответствующие функции. Они должны быть описаны в определенном месте листинга, а именно после заголовка Required designer variable – Переменные для разработчика.
private:
/// <summary>
/// Required designer variable.
В данном примере создаются две функции:
1) функция открытия файла <имя>.rtf и вывода содержимого файла на экран LoadMyFile.
void LoadMyFile()
{
//функция открытия файла и вывода его на экран
// Создание запроса OpenFileDialog для открытия файла.
OpenFileDialog^ openFile1 = gcnew OpenFileDialog;
// Инициализация OpenFileDialog для RTF файлов.
openFile1->DefaultExt = "*.rtf";
openFile1->Filter = "RTF Files|*.rtf";
// Реализация выбора файла из OpenFileDialog.
if (openFile1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
openFile1->FileName->Length > 0)
{
// Загрузка содержимого файла в RichTextBox.
richTextBox1->LoadFile(openFile1->FileName, RichTextBoxStreamType::
PlainText);
}
else MessageBox::Show("Open file error");
}
2) функция сохранения текста, набранного в окне редактора текста в файле <имя>.rtf – SaveMyFile.
void SaveMyFile()
{
// Вызов SaveFileDialog для запроса пути и имени файла,чтобы сохранить
//содержимое из редактора текста в выбранном файле.
SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;
// Инициализация SaveFileDialog спецификации - RTF расширения для файла.
saveFile1->DefaultExt = "*.rtf";
saveFile1->Filter = "RTF Files|*.rtf";
// Determine if the user selected a file name from the saveFileDialog.
if (saveFile1->ShowDialog() == System::Windows::Forms::DialogResult::OK &&
saveFile1->FileName->Length > 0)
{
// Сохранение содержимого окна RichTextBox в файле.
richTextBox1->SaveFile(saveFile1->FileName, RichTextBoxStreamType::PlainText);
}
else MessageBox::Show("Open file error");
}
Фильтр для выбора типа файла в диалоге
В режиме «Форма» неоходимо выделить, например, OpenFileDialog и открыть, как было описано ранее, окно Properties. В строке Filter в пустое поле необходимо вписать строку, определяющую тип файла, который будет открываться в диалоге. Например:
"Text files (*.txt)|*.txt|All files (*.*)|*.*".
Тоже надо сделать и для сохранения файла – SaveFileDialog.
Дата добавления: 2015-10-21; просмотров: 48 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Текстовый редактор | | | Текстовый редактор Word. |