/// <summary> /// 保存文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SaveMenuItemChild_Click(object sender, EventArgs e) { if (this.Text == "Script Edit - 未命名") { saveFileDialog1.Filter = "脚本文件|*.psc|四元组文件|*.pas"; saveFileDialog1.FilterIndex = 1; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { createfilename = saveFileDialog1.FileName.ToString(); PapyrusCompilerTextBox.SaveFile(createfilename, RichTextBoxStreamType.PlainText); using (FileStream fs = new FileStream(createfilename, FileMode.Open, FileAccess.Read)) { using (StreamReader sr = new StreamReader(fs, EncodeType)) { PapyrusCompilerTextBox.Text = sr.ReadToEnd(); this.Text = "Script Edit - " + createfilename.Substring(createfilename.LastIndexOf("\\") + 1); } } MessageBox.Show("保存成功"); } } else { if (this.Text != "Script Edit") { PapyrusCompilerTextBox.SaveFile(filenamewithpath, RichTextBoxStreamType.PlainText); MessageBox.Show("保存成功"); } } }
/// <summary> /// 获取文本中(行和列)--光标位置 /// </summary> private void Ranks() { /* 得到光标行第一个字符的索引, * 即从第1个字符开始到光标行的第1个字符索引*/ int index = PapyrusCompilerTextBox.GetFirstCharIndexOfCurrentLine(); /*得到光标行的行号,第1行从0开始计算,习惯上我们是从1开始计算,所以+1。 */ int line = PapyrusCompilerTextBox.GetLineFromCharIndex(index) + 1; /* SelectionStart得到光标所在位置的索引 * 再减去 * 当前行第一个字符的索引 * = 光标所在的列数(从0开始) */ int column = PapyrusCompilerTextBox.SelectionStart - index + 1; this.RankStatus.Text = string.Format("当前:{0}行/{1}列,共{2}行", line.ToString(), column.ToString(), PapyrusCompilerTextBox.Lines.Length); }
/// <summary> /// 打开文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OpenFileMenuItemChild_Click(object sender, EventArgs e) { openFileDialog1.Filter = "脚本文件|*.psc|四元组文件|*.pas"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { filenamewithpath = openFileDialog1.FileName; //string ext = filenamewithpath.Substring(filenamewithpath.LastIndexOf(".") + 1);//获取文件格式 safefilename = openFileDialog1.SafeFileName; using (FileStream fs = new FileStream(filenamewithpath, FileMode.Open, FileAccess.Read)) { using (StreamReader sr = new StreamReader(fs, EncodeType)) { PapyrusCompilerTextBox.Text = sr.ReadToEnd(); this.Text = "Script Edit - " + safefilename; } } } else { PapyrusCompilerTextBox.Clear(); this.Text = "Script Edit"; } }
/// <summary> /// 新建文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CreateMenuItemChild_Click(object sender, EventArgs e) { PapyrusCompilerTextBox.Clear(); this.Text = "Script Edit - 未命名"; }