
- •Основы программирования на языке с#
- •Структура программы
- •Типы данных в c#
- •Переменные и константы
- •Управляющие конструкции
- •If (условие) действие;
- •Комментарии
- •Int count; // Эта переменная хранит количество элементов
- •Массивы
- •Исключения
- •Среда Visual Studio
- •Общие сведения об основных понятиях платформы .Net Framework
- •Контейнеры: проекты и решения
- •Типы и расширения файлов в Visual Studio для с#
- •Переходы в рамках интегрированной среды разработки
- •Типы окон и операции над ними
- •Элементы управления
- •Панель элементов
- •Окно "Свойства"
- •Создание приложений Windows Forms
- •Операции над проектами Windows
- •В результате откроется окно Сохранить проект.
- •Работа с формами
- •Создание формы Windows Forms
- •Настройка формы
- •Просмотр кода для формы
- •Создание глобальной переменной класса Form
- •Переименование формы
- •Установка расположения форм Windows Forms на экране
- •Выбор начальной формы в приложении Windows
- •Настройка размера формы Windows Forms
- •Добавление фоновых изображений в формы Windows Forms.
- •Отображение модальных и немодальных форм Windows Forms
- •Создание прозрачных форм Windows Forms
- •Изменение границ формы Windows Forms с помощью конструктора
- •Переход между формами
- •Cкрытие и закрытие форм
- •Работа с элементами управления Windows Forms
- •Добавление элементов управления в формы Windows Forms
- •Изменение размера элементов управления в формах Windows Forms
- •Определение текста, отображаемого элементом управления Windows Forms
- •Определение клавиш доступа для элементов управления Windows Forms
- •Добавление элементов управления, для которых не существует пользовательского интерфейса, в формы Windows Forms
- •Закрепление элементов управления в формах Windows Forms
- •Выравнивание нескольких элементов управления в формах Windows Forms
- •Обработка события клавиши на элементе управления
- •Обращение к элементу управления на другой форме
- •Привязка элементов управления в формах Windows Forms
- •Элементы управления
- •Button – кнопка)
- •Надпись – Label
- •Поле ввода TextBox
- •Чтобы выделить текст программными средствами:
- •Панель Panel
- •Таймер Timer
- •Переключатель CheckBox
- •Переключатель RadioButton
- •Группа объектов GroupBox
- •Списки ComboBox
- •Рисунки PictureBox
- •Чтобы задать рисунок программными средствами задайте свойство Image при помощи метода FromFile класса Image, например:
- •Массив рисунков ImageList
- •Программное меню MenuStrip
- •Синхронизация меню на разных формах
- •Создание списка в окне интерфейса mdi с помощью MenuStrip
- •Блокирование доступа к элементам меню ToolStripMenuItem
- •Скрытие объектов ToolStripMenuItem
- •Контекстное меню ContextMenu
- •Привязка контекстного меню к элементу управления.
- •Панель инструментов ToolStrip
- •Строка состояния StatusStrip
- •Размер таблицы
- •Интерфейс таблицы
- •Диалоговые окна OpenFileDialog и SaveFileDialog
- •Работа с цветами ColorDialog
- •Шрифты FontDialog
- •Счетчик DomainUpDown
- •Счетчик NumericUpDown
- •Индикатор процесса ProgressBar
- •Текстовый редактор RichTextBox
- •Элемент управления Windows Forms RichTextBox позволяет записывать отображаемые в нем данные в одном из следующих форматов:
- •Вкладки TabControl
- •Чтобы добавить новую вкладку:
- •Календарь MonthCalendar
- •Браузер WebBrowser
- •Диалоговое окно MessageBox
- •Создание графических объектов
- •Методы класса Graphics
- •Примеры построения графических объектов
- •Кривая Безье
- •Построение треугольника в этом примере создадим код для рисования треугольника. Координаты треугольника создаются случайным образом: Чтобы создать треугольник:
- •Создание графика функции в этом примере создадим код для построения графика функции на интервале .
- •Чтобы построить график функции необходимо:
- •Диаграммы
- •Установка компонента по работе с диаграммами
- •Основные методы по работе с компонентом zedGraphControl
- •Примеры построения диаграмм
- •Создание приложений на языке Visual c# в среде программирования Visual Studio Учебное пособие
- •665709, Братск, ул.Макаренко,40
-
Диалоговые окна OpenFileDialog и SaveFileDialog
Компоненты Windows Forms OpenFileDialog и SaveFileDialog являются стандартными диалоговыми окнами. Эти компоненты аналогичны диалоговым окнам Открыть файл и Сохранить файл операционной системы Windows.
Компоненты OpenFileDialog и SaveFileDialog используются в приложении Windows в качестве простого решения для выбора файлов вместо диалогового окна, настраиваемого самостоятельно. Использование стандартных диалоговых окон Windows помогает создавать приложения, основные функциональные возможности которых хорошо знакомы пользователям. Однако следует помнить, что при использовании компонент OpenFileDialog и SaveFileDialog необходимо разработать собственный алгоритм открытия файла и записи данных в файл.
Используйте метод ShowDialog для отображения диалогового окна во время выполнения. При помощи свойства Multiselect элемента управления OpenFileDialog пользователям можно разрешить выбор нескольких файлов для открытия в приложения. Кроме того, с помощью свойства ShowReadOnly элемента управления OpenFileDialog можно задать отображение в диалоговом окне флажка "Только для чтения". Свойство Filter компонентов OpenFileDialog и SaveFileDialog задает строку фильтра для текущего имени файла, которая определяет варианты, отображающиеся в поле "Тип файлов" диалогового окна.
Добавленный в форму компонент OpenFileDialog или SaveFileDialog появляется в нижней области конструктора Windows Forms в области невидимых объектов.
Чтение данных их файла и запись в файл в C#
Для операций ввода-вывода служит пространство имен System.IO.
Вот краткий обзор наиболее важных классов и методов из этого пространства имен:
-
BinaryReader – метод, позволяющий читать из файла данные различных типов (целые, вещественные, логические и т. п.);
-
BinaryWriter – метод, позволяющий записывать в файл данные различных типов (целые, вещественные, логические и т. п.);
-
Directory – класс для работы с папками;
-
DirectoryInfo – класс для работы с одной определенной папкой;
-
File – класс для работы с файлом;
-
FileInfo – класс для работы с одним определенным файлом;
-
Path – класс для работы с файловыми путями;
-
Перечисление FileAttributes – атрибуты файла;
-
Перечисление FileMode – возможные способы открытия файла;
-
Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.;
-
FileSystemWatcher – класс для отслеживания изменений в файловой системе;
-
Перечисление NotifyFilters – параметры, по которым происходит отслеживание изменений в файловой системе;
-
Перечисление WatcherChangeTypes –изменения, отслеживаемые в файловой системе.
Запись в файл с использованием компонента SaveFileDialog
Чтобы записать данные в файл выполните следующие действия:
-
Выберите в Панели элементов на вкладке Диалоговые окна элемент управления SaveFileDialog и добавьте его на форму в область невидимых элементов:
-
Настройте свойства элемента управления SaveFileDialog в окне Свойства:
-
Filter=Название1|фильтр1|Название2|фильтр2…,
Например:
Filter= Текстовые файлы|*.txt|Все файлы|*.*
Filter= Текстовые файлы|*.txt
-
DefaultExt=расширение – расширение, которое будет приписано к имени файл, если пользователь не ввел свое расширение. При этом свойство AddExtension (автоматическое приписывание расширения файлам) должно иметь значение true.
-
FilterIndex=№ – индекс фильтра файлов по умолчанию. Нумерация начинается с единицы.
-
InitialDirectory=путь/папка – исходная папка диалогового окна.
-
Title=название – строка, отображаемая в заголовке программы
-
Подключите библиотеку System.IO с помощью команды using в разделе подключения библиотек:
using System.IO;
-
Для осуществления записи информации в текстовый файл необходимо прописать обработчик события для элемента управления, например обработчик нажатия кнопки:
private void button1_Click(object sender, EventArgs e)
{// Открываем стандартное окно Windows для сохранения информации в файл
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// Создаем файловую переменную, ссылающуюся на имя файла, выбранного в диалоговом окне сохранения и открываем файл для записи
StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);
// или
// StreamWriter FS = new StreamWriter(saveFileDialog1.FileName, true,
System.Text.Encoding.GetEncoding(1251));
// Записываем информацию в файл
FS.Write("Здесь можно вставить текст, например, из текстового поля - textBox1.Text");
// Закрываем файл
FS.Close();
}
}
При записи с помощью метода Write("текст формат") можно использовать строку форматирования, которая имеет следующий вид:
{N,W:F},
где N - номер параметра; W - ширина поля; F - формат вывода.
Допустимые форматы ввода:
-
d - десятичный формат. Позволяет задать общее количество знаков (при необходимости число дополняется слева нулями).
-
f - формат с фиксированной точностью. Позволяет задать количество знаков после запятой.
-
x - шестнадцатеричный формат.
-
c - денежный формат (добавляет знак доллара и показывает два знака после запятой).
-
e - вывод числа в экспоненциальной форме.
Пример. Сохранить в файл число в поле шириной четыре знака с добавлением впереди числа нулей.
Код:
private void button14_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);
int a=Convert.ToInt16(textBox1.Text);
//Если введено a=38, то выведется 0038
FS.Write ("a={0:d4}", a);
FS.Close();
}
}
Примечание. Если путь к исходной папке задан неверно, то открывается папка «Мои документы».
Примечание. Если файл уже существует, то система выведет стандартное для операционной системы Windows предупреждение с предложением файл заменить.
Примечание. За действие, выполняемое в случае наличия выбранного файла отвечает второй аргумент в команде new StreamWriter:
new StreamWriter(имя файла, действие если файл уже существует, кодировка).
Если вторым аргументом стоит значение True, то произойдет дозапись в файл. Если вторым аргументом стоит значение False, то старая информация из файла будет стерта, а на ее место записана новая.
Запись двумерного массива размера [n,m] в файл
Чтобы записать в файл данные из таблицы dataGridView в форме матрицы необходимо прописать код, аналогичный следующему:
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{ StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
FS.Write("{0,3}", dataGridView1[j, i].Value);
};
FS.WriteLine();
};
FS.Close();
}
Примечание. Ширина одного столбца матрицы в файле равно 3.
Примечание. Один элемент массива можно записать в файл следующим образом:
FS.Write("\t {0}", A[1, 1]);
Чтение данных из файла
Алгоритм чтения данных из файла схож с алгоритмом записи данных в файл: компонент SaveFileDialog следует заменить на компонент OpenFileDialog, установить для компонента OpenFileDialog свойства, аналогичные свойствам компонента SaveFileDialog. Прописать код, аналогичный следующему:
private void button1_Click(object sender, EventArgs e)
{string s;
// Открываем стандартное окно Windows для чтения информации из файла
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
// Создаем файловую переменную, ссылающуюся на имя файла, выбранного в диалоговом окне чтения и открываем файл для считывания данных
StreamReader FS = new StreamReader (openFileDialog1.FileName);
// Считываем информацию из файла
s= FS.Readline();
// Закрываем файл
FS.Close();
}
}
Пример. Строка считывается из файла и прописывается на кнопке.
private void button15_Click(object sender, EventArgs e)
{ string s;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{ StreamReader FS = new StreamReader (openFileDialog1.FileName);
s = FS.ReadLine();
FS.Close();
button15.Text = s;
}
}
Чтение двумерного массива размера [n,m] из файла
Чтобы считать из файла данные и записать их в таблицу dataGridView необходимо прописать код, аналогичный следующему:
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{ StreamReader FS = new StreamReader(openFileDialog1.FileName);
for (i = 0; i < n; i++)
{ s = FS.ReadLine();
for (j = 0; j < m; j++)
{ dataGridView1[j, i].Value = s.Substring(0, 3);
s = s.Substring(3, s.Length-3);
};
};
FS.Close();
}
Примечание. Ширина одного столбца матрицы в файле равно 3.