C# Windows Forms / Текстовый редактор с подсветкой синтаксиса, подсказками и компиляцией кода

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

TIM SYSTEM ЗАКРЕПИ
Создайте новое приложение Visual C# .NET для Windows. По умолчанию создается форма Form1 .

Добавьте элемент управления "Кнопка" в форму Form1и измените его свойство Text на Build.

Добавьте еще один элемент управления "Кнопка" в форму Form1и измените его свойство Text на Run.

Добавьте в форму Form1два элемента управления TextBox, задайте для свойства Multiline для обоих элементов управления значение true, а затем измените размер этих элементов управления, чтобы можно было вставлять в каждое из них несколько строк текста.

В редакторе кода откройте исходный файл Form1.CS .

В Form1 классе вставьте следующий обработчик нажатия кнопки.

private void button1_Click(object sender, System.EventArgs e)
{
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc =
string Output = "Out.exe";
Button ButtonObject = (Button)sender;

textBox2.Text = "";
parameters = new CompilerParameters();
//Make sure we generate an EXE, not a DLL
parameters.GenerateExecutable = true;
parameters.OutputAssembly = Output;
CompilerResults results = icc.CompileAssemblyFromSource(parameters, textBox1.Text);

if (results.Errors.Count > 0)
{
textBox2.ForeColor = Color.Red;
foreach (CompilerError CompErr in results.Errors)
{
textBox2.Text = textBox2.Text +
"Line number " + CompErr.Line +
", Error Number: " + CompErr.ErrorNumber +
", '" + CompErr.ErrorText + ";" +
Environment.NewLine + Environment.NewLine;
}
}
else
{
//Successful Compile
textBox2.ForeColor = Color.Blue;
textBox2.Text = "Success!";
//If we clicked run then launch our EXE
if (ButtonObject.Text == "Run") Process.Start(Output);
}
}

В начале файла добавьте следующие using операторы:
using System.CodeDom.Compiler;
using System.Diagnostics;
using Microsoft.CSharp;

В Form1.CSвыберите Form1 конструктор.
После вызова InitializeComponent в Form1 конструкторе добавьте следующий код, чтобы связать обработчик нажатия кнопки с обеими кнопками, добавленными в Form1.

public Form1()
{
InitializeComponent();
this.button1.Click += new
this.button2.Click += new
}
пустите проект. После загрузки формы Form1 нажмите кнопку Build

Примечание:

Возникает ошибка компилятора

После этого скопируйте приведенный ниже текст в текстовое поле, заменив существующий текст:

using System;
namespace HelloWorld
{
class HelloWorldInConsole
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}

Снова нажмите кнопку построить . Компиляция должна быть успешной.
Нажмите выполнить, чтобы скомпилировать код и запустить полученный исполняемый файл. При компиляции создается исполняемый файл с именем Out.exe, который сохраняется в той же папке, что и приложение, которое вы используете.


Примечание:

Вы можете изменить код в текстовом поле, чтобы увидеть различные ошибки компилятора. Например, удалите одно из точек с запятой и перестройте код.

Наконец, измените код в текстовом поле, чтобы вывести в окно консоли еще одну строку текста. Нажмите кнопку выполнить, чтобы просмотреть выходные данные.

iwtsyd
Автор

От чистого сердца хочу сказать спасибо, в таком возрасте уже сколько знаешь, думаю будущее у тебя будет великим, удачи !!!

rosttaran
Автор

То чувство, когда у 12-летнего автора канала IDE лучше чем у взрослых профессионалов

Вейтос
Автор

Кстати совет, что-бы в Visual Studio текст дописывался надо просто нажать два раза Tab, на заметку, будет проще писать всё :)

rosttaran
Автор

Лучший! Кстати, по твоим туториалам я буду делать свою IDE для написания кода на любых языках, у тебя вк есть?

Вейтос
Автор

Попробуйте установить фастколороде на ВизуалСтудию 22...

Бойправ-жы
Автор

Майкрасофт создали программу в которой могут найти себе конкурентов😂

va_dix
Автор

человек же создаёт переменные, методы и тд, чтобы они были в подсказках, можно все слова если они не повторяются добавлять в список подсказок, если конечно в том помощнике такого нет)

tornamic
Автор

А что делать, если я пишу код в компиляторе и при нажатии на кнопку "скомпилировать код", просто открывается VisualStudio с этим кодом. Хотя по факту должна открываться консолька(

crdex
Автор

Привет! Не подскажешь, как сделать такие функции, как "GoToLine", "Find" и "Find and Replace" в Fast colored textbox? Я искал информацию об этом, но единственное, что я нашёл, так это возможность открыть такие окна сочетаниями клавиш, но для меня это не подходит, так как мне мне нужно сделать кастомное окно, сочетающее в себе эти функции. и ещё такой момент, у меня текстовый редактор со вкладками, и я на каждой новой вкладке создаю новый fast colored tb. Так что если знаешь, не подскажешь, как эти выполнять эти функции?

MrNichosik
Автор

TIM SYSTEM КОГДА НОВЫЕ ВИДОСИК! ТЫ КЛЁВО СНИМАЕШ!! ЛАЙК + ПОДПИСКА

iwtsyd
Автор

А можно FastColoredTextBox под WPF подогнать или как-то самому сделать?

folkusgame
Автор

В 109 строке ты используешь метод Name я не могу понять откуда ты его берешь ?
а еще я не понимаю что находится в run-app-file.cs и run-app-file_cs.exe

qeez
Автор

а что делать если, у меня при импорте fastcoloredtextbox выдаёт сообщение "Следующие элементы управления были добавлены, но не включены"?

MrNichosik
Автор

Делал, уже на первом шагу, библиотеки загрузил, а не чё по типу FastColoredTextBox не появилось

haizygames