formfindnreplace.cpp

来自「一个可视化的编译器」· C++ 代码 · 共 74 行

CPP
74
字号
#include "StdAfx.h"
#include "FormFindNReplace.h"
#include "FormMain.h"

namespace LeastLIDE{
	System::Void FormFindNReplace::buttonFind_Click(System::Object^  sender, System::EventArgs^  e) {
		RichTextBox ^ codeTextBox = ((RichTextBox ^)(this->Owner->Controls->Find("codeTextBox", true)[0]));
		codeTextBox->Focus();
		int newPos = codeTextBox->Find(this->comboBoxFind->Text, startPos, RichTextBoxFinds::None);
		if (newPos == -1){
			startPos = 0 ;
		}
		startPos = newPos + comboBoxFind->Text->Length - 1;
		this->Owner->Activate();
	}

	System::Void FormFindNReplace::buttonReplace_Click(System::Object^  sender, System::EventArgs^  e) {
		RichTextBox ^ codeTextBox = ((RichTextBox ^)(this->Owner->Controls->Find("codeTextBox", true)[0]));
		int count = 0;
		while (true)
		{
			codeTextBox->Focus();
			int newPos = codeTextBox->Find(this->comboBoxFind->Text, startPos, RichTextBoxFinds::None);
			if (newPos == -1){
				Windows::Forms::MessageBox::Show("总共完成" + count + "次替换.", "替换完成");
				startPos = 0;
				break;
			}
			startPos = newPos + comboBoxFind->Text->Length - 1;
			this->Owner->Activate();


			Windows::Forms::DialogResult result = Windows::Forms::MessageBox::Show("您确认要将单词\n\r\"" 
				+ comboBoxFind->Text + "\"\n替换成成 \n\""
				+ this->comboBoxReplace->Text + "\"吗?", "替换确认",
				Windows::Forms::MessageBoxButtons::OKCancel,
				Windows::Forms::MessageBoxIcon::Question,
				Windows::Forms::MessageBoxDefaultButton::Button1);
			if (result == Windows::Forms::DialogResult::OK) 
			{
				codeTextBox->SelectedText = this->comboBoxReplace->Text;
				++count ;
			} 
			else
			{
				break;
			}
		}
	}

	System::Void FormFindNReplace::buttonReplaceAll_Click(System::Object^  sender, System::EventArgs^  e){
		RichTextBox ^ codeTextBox = ((RichTextBox ^)(this->Owner->Controls->Find("codeTextBox", true)[0]));
		int count = 0;
		while (true)
		{
			codeTextBox->Focus();
			int newPos = codeTextBox->Find(this->comboBoxFind->Text, startPos, RichTextBoxFinds::None);
			if (newPos == -1){
				Windows::Forms::MessageBox::Show("总共完成" + count + "次替换.", "替换完成");
				startPos=0;
				break;
			}
			startPos = newPos + comboBoxFind->Text->Length - 1;
			codeTextBox->SelectedText = this->comboBoxReplace->Text;
			++count ;
		}
	}

	System::Void FormFindNReplace::buttonClose_Click(System::Object^  sender, System::EventArgs^  e){
		this->Close();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?