Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-05-23 | 243 |
5.00
из
|
Заказать работу |
|
|
Листинг 8.1. Код для рисования горизонтального текста.
private void Form1_Paint(object sender, PaintEventArgs e)
{
//Объявляем переменную myString и присваиваем значение:
string myString = "Visual Studio";
//Объявляем объект myFont и создаем экземпляр объекта:
Font myFont = new Font("Arial", 30);
//Объявляем объект myBrush и создаем экземпляр объекта:
SolidBrush myBrush = new SolidBrush(Color.Black);
//Задаем координаты начала текста:
float x = 5.0f;
float y = 50.0f;
//Рисуем горизонтальный текст кистью myBrush:
e.Graphics.DrawString(myString, myFont, myBrush, x, y);
//Высвобождаем память, выделенную объектам:
myFont.Dispose();
myBrush.Dispose();
}
Листинг 8.2. Строки для рисования вертикального текста.
//Объявляем объект myFormat и создаем экземпляр объекта:
StringFormat myFormat = new StringFormat(
StringFormatFlags.DirectionVertical);
//Рисуем вертикальный текст кистью myBrush:
e.Graphics.DrawString(myString, myFont, myBrush,
x, y, myFormat);
Листинг 8.3. Считывание текстового файла.
System.IO.StreamReader myPrintFile;
Font myPrintFont;
private void button1_Click(object sender, EventArgs e)
{
string myPrintPath = Environment.GetFolderPath(
Environment.SpecialFolder.Desktop);
myPrintFile =
new System.IO.StreamReader(myPrintPath +
@"\myText.txt");
myPrintFont = new Font("Times New Roman", 12);
printDocument1.Print();
myPrintFile.Close();
}
Дважды щелкаем по значку для компонента PrintDocument (ниже формы в режиме проектирования). Открывается файл Form1.cs с шаблоном, который после записи кода принимает следующий вид.
Листинг 8.4. Печать текстового файла.
private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
float yPos = 0f;
int counter = 0;
float leftMargin = e.MarginBounds.Left;
float topMargin = e.MarginBounds.Top;
string line = null;
float linesPerPage = e.MarginBounds.Height /
myPrintFont.GetHeight(e.Graphics);
while (counter < linesPerPage)
{
line = myPrintFile.ReadLine();
if (line == null)
{
break;
}
yPos = topMargin + counter *
myPrintFont.GetHeight(e.Graphics);
e.Graphics.DrawString(line, myPrintFont,
Brushes.Black, leftMargin, yPos,
new StringFormat());
counter++;
}
if (line!= null)
{
e.HasMorePages = true;
|
}
}
Проверяем в действии созданную нами программу для печати на принтере текстового файла. Строим и запускаем программу: Build, Build Solution; Debug, Start Without Debugging. Мы увидим форму Form1 в режиме выполнения. Щелкаем кнопку Print. Принтер печатает заданный текстовый файл. По этой методике мы можем распечатывать из Visual Studio различные текстовые файлы с различным расширением.
Мы закончили часть книги с общими методиками проектирования различных изображений и методиками печати изображений и текстовых файлов на принтере.
Часть III. Методология вычислений на основе Visual C# с использованием эффектов анимации
Глава 9. Методика создания вычислительной системы
Листинг 9.1. Код для мигания названия переключателя.
//Объявляем булеву переменную myText со значением false:
bool myText = false;
private void timer1_Tick(object sender, EventArgs e)
{
//Вводим анимацию:
if (myText == false)
{
//Выводим название переключателя:
this.radioButton3.Text = "&3. Calculator";
//Изменяем значение myText на противоположное:
myText = true;
}
else
{
//Удаляем название переключателя:
this.radioButton3.Text = "";
//Изменяем значение myText на противоположное:
myText = false;
}
}
В этом коде в строке (radioButton3->Text = "";) между кавычками мы можем записать другой текст, который будет чередоваться с первым названием.
Аналогично можно также дописать код, чтобы сделать анимационными сразу несколько переключателей. Задавая в панели Properties с заголовком Timer1 различные значения свойству Interval (а выше мы задали 1000 миллисекунд или 1 секунду), можно изменять частоту мигания, чтобы это мигание было, например, приятным для наших глаз. Методика приостановки и возобновления анимации после щелчков по кнопке или по самой формы уже была приведена выше.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!