Как сохранить файл в fastcoloredtextbox?
Я разрабатываю редактор синтаксиса в C#, где вы можете написать код в компоненте FastColoredTextBox, а затем сохранить его в виде файла.html. Тем не менее, у меня есть код для Save As
вариант. Единственная проблема у меня, когда пользователь сохраняет файл.html, то же самое Save As
диалоговое окно выскакивает. Но мы уже сохранили это раньше. Я хочу просто нажать Ctrl+S
на клавиатуре, и он автоматически сохранит изменения файла после сохранения в виде файла.html, конечно.
Вот код, который у меня есть для Save As
вариант.
private void toolStripButton2_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = default(SaveFileDialog);
if (FastColoredTextBox1.Text.Length > 0)
{
sfd = new SaveFileDialog();
sfd.Filter = "HTML Files|.html|" + "All Files|*.*";
sfd.DefaultExt = "html";
sfd.ShowDialog();
string location = null;
string sourcecode = FastColoredTextBox1.Text;
location = sfd.FileName;
if (!object.ReferenceEquals(sfd.FileName, ""))
{
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(location, false))
{
writer.Write(sourcecode);
writer.Dispose();
}
}
}
if (Directory.Exists(sfd.FileName) == true)
{
string location = sfd.InitialDirectory;
File.WriteAllText(location, (FastColoredTextBox1.Text));
}
}
Может ли кто-нибудь помочь мне достичь этого? Пожалуйста помоги.
1 ответ
Вы должны сделать то, что другие предложили сохранить его как текстовый файл с расширением.html, но я здесь, чтобы ответить на ваши вопросы. ctrl + s
вопрос. Это предполагает, что вы используете winform (потому что вы еще не указали):
yourForm.KeyPreview = true;
yourForm.KeyDown += new KeyEventHandler(Form_KeyDown);
и ваш обработчик должен выглядеть примерно так:
void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S)
{
string sourceCode = FastColoredTextBox1.Text;
// not sure what's going on for you "location" but you need to do that logic here too
File.WriteAllText(location, sourceCode);
e.SuppressKeyPress = true;
}
}
Надеюсь, что это помогает бутон