Страница 1 из 1

Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 01:46
Dolgopolov Dmitriy
Я программно создал текстовое поле, но я не могу изменить у него шрифт.
код:

StiText t_name = new StiText(new RectangleD(3.6, 5.2, 14.6, 0.4));
t_name.Text = name;
t_name.Name = "t_Name";
t_name.Font.Bold = true;
page.Components.Add(t_name);

при компиляции возникает ошибка "Property or indexer 'System.Drawing.Font.Bold' cannot be assigned to -- it is read only"


Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 04:58
Ivan
Здравствуйте.
Whiplashock писал(а):Мне нужно из кода обратиться к элементу страницы отчета. Например к существующему текстовому полю, чтобы изменить его содержимое. Как это сделать?
Для шаблона отчета: report.GetComponents()["componentName"] или report.Pages[pageIndex].Components["componentName"].
Для отрендеренной страницы: report.RenderedPages[pageIndex].Components["componentName"].
Whiplashock писал(а):Плюс еще такой вопрос. Я программно создал текстовое поле, но я не могу изменить у него шрифт.
при компиляции возникает ошибка "Property or indexer 'System.Drawing.Font.Bold' cannot be assigned to -- it is read only"
Это ограничение Net Framework и GDI/GDI+ : все параметры шрифта можно указывать только при создании шрифта. У созданного шрифта параметры менять нельзя, они только для чтения.
Поэтому придется использовать следующий код:

Код: Выделить всё

t_name.Font = new Font(t_name.Font.Name, t_name.Font.Size, t_name.Font.Style | FontStyle.Bold);
Спасибо.

Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 06:15
Dolgopolov Dmitriy
Благодарю! Очень помогло!

Новая проблема. Я программно пытаюсь нарисовать вертикальную линию:

StiVerticalLinePrimitive line = new StiVerticalLinePrimitive(new RectangleD(7.0, 10.0, 0.0, 3.0));
line.Name = "VLine1";
line.Color = Color.Black;
page.Components.Add(line);

но на странице отчета она не появляется. В чем может быть причина?

Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 08:03
Aleksey
Здравствуйте,

Для вертикальной линий этого недостаточно. У вертикальной линии еще необходимо создать StiStartPointPrimitive и StiEndPointPrimitive, начальная и конечная точка линии.
Для которых необходимо указать в ReferenceToGuid guid самой линии.

Самый простой способ создать какие-либо элементы из кода вашего приложения, это создать необходимый элемент в дизайнере и посмотреть код на вкладке Code.

Спасибо.

Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 09:46
Dolgopolov Dmitriy
Не могу найти вкладку Code.

Если же это пункт контекстного меню "View Code (F7)" объекта StiReport, то он возвращает меня в мой код, где я произвожу создание элементов и всяческие обработки. А вот скриптов созданных мной элементов в дизайнере там нет.

Как из кода изменить шрифт текстового поля?

Добавлено: 09 фев 2011, 10:59
Ivan
Здравствуйте.

Включить закладку "Code" можно в дизайнере в контекстном меню закладок.

Спасибо.

Как из кода изменить шрифт текстового поля?

Добавлено: 10 фев 2011, 04:33
Dolgopolov Dmitriy
Спасибо! Закладка "Код" появилась. Но при добавлении элементов на страницу отчета, в коде не происходит никаких изменений.

Как из кода изменить шрифт текстового поля?

Добавлено: 10 фев 2011, 04:38
Aleksey
Здравствуйте,

Вам так же необходимо включить отображение автогенерируемого кода:

Спасибо.

Как из кода изменить шрифт текстового поля?

Добавлено: 10 фев 2011, 04:42
Dolgopolov Dmitriy
Спасибо! Наконецто получилось

Как из кода изменить шрифт текстового поля?

Добавлено: 10 фев 2011, 04:56
Aleksey
Здравствуйте,

Всегда рады помочь.
Сообщите, если понадобится дополнительная помощь.