/// <summary> /// Смена ведения истории /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void menuHistoryWrite_CheckedChanged(object sender, EventArgs e) { if (!m_AppStart) { return; } m_ParamInfo.HistoryWrite = menuEditWriteHistory.Checked; m_ActClass.SaveParameter(m_ParamInfo); var hisInfo = new HistoryInfo { SelectionStart = textWindow.SelectionStart, SelectionLength = textWindow.SelectionLength, ScrinText = textWindow.Text, VertScrollPosition = GetScrollPos(textWindow.Handle, 1 /* SB_VERT */), HorizScrollPosition = GetScrollPos(textWindow.Handle, 0 /* SB_HORIZ */) }; m_HistoryClass = new HistoryClass(hisInfo); }
/// <summary> /// Сохранить /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void menuFileSave_Click(object sender, EventArgs e) { try { if (m_FilePath == "") { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { m_FilePath = saveFileDialog1.FileName; } else { return; } } try { // // Смена аттрибута, если он только для чтения // var fi = new FileInfo(m_FilePath); FileAttributes saveFileAttrib = fi.Attributes; if (fi.Attributes.ToString().Contains(FileAttributes.ReadOnly.ToString())) { if (MessageBox.Show("Файл помечен аттрибутом \"Только для чтения\". Перезаписать?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { fi.Attributes = FileAttributes.Normal; } else { return; } } // // Сохранение файла // using (var sw = new StreamWriter(m_FilePath, false, Encoding.GetEncoding("windows-1251"))) { sw.Write(textWindow.Text); } // // Возврат аттрибута только для чтения, если он был изменён // if (saveFileAttrib != fi.Attributes) { fi.Attributes = saveFileAttrib; } Text = "Блокнот - " + m_FilePath.Substring(m_FilePath.LastIndexOf('\\') + 1); SetTextChange(false); var hisInfo = new HistoryInfo { SelectionStart = textWindow.SelectionStart, SelectionLength = textWindow.SelectionLength, ScrinText = textWindow.Text, VertScrollPosition = GetScrollPos(textWindow.Handle, 1 /* SB_VERT */), HorizScrollPosition = GetScrollPos(textWindow.Handle, 0 /* SB_HORIZ */) }; m_HistoryClass.Dispose(); m_HistoryClass = new HistoryClass(hisInfo); } catch (Exception exc) { MessageBox.Show("Произошла ошибка: \r\n" + exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } finally { MainForm_InputLanguageChanged(null, null); } }