Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Вертикальный текст в ячейке SourceGrid


Автор: Simplemortal 24.10.2007, 21:41
Приветствую всех!
Мне нужно в отдельных ячейках компонента http://www.devage.com/Wiki/ViewArticle.aspx?name=sourcegrid&version=0 сделать текст вертикальным.
У самого компонента есть свойство Font, поэтому, как я понимаю, вертикальный шрифт и присвоить его фонту компонента, тогда во всём компоненте должен получиться вертикальный шрифт. 
Но мне нужно только в некоторых ячейках! 
Кто-нть знает как такое реализовать??

Автор: Simplemortal 25.10.2007, 12:04
Нашёл пример, в котором меняется шрифт для отдельных ячеек (в данном случае для Header'ов).
Делается через наследование:
Код

private class MyHeader : SourceGrid.Cells.ColumnHeader
    {
        public MyHeader(object value):base(value)
        {
            SourceGrid.Cells.Views.ColumnHeader view = new SourceGrid.Cells.Views.ColumnHeader();
            view.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
            view.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
            View = view;
        }
    }

Шрифт меняется, но вертикальный сделать у меня так и не получилось; пробовал так:
Код

view.Font = new Font(FontFamily.GenericSansSerif, 48, FontStyle.Bold,GraphicsUnit.Point,0,true);


И ещё одна проблема:
    этот код на C#, а мне нужно на C++.
Переделываю на C++, получается так:
Код

private: ref class VerticalHeader: public SourceGrid::Cells::ColumnHeader
    {
        public: VerticalHeader(System::Object ^cellVal)
        {
            SourceGrid::Cells::Views::ColumnHeader ^view = gcnew SourceGrid::Cells::Views::ColumnHeader();
            view->Font = gcnew Font(FontFamily::GenericSansSerif, 10, FontStyle::Bold); //здесь ошибка
            view->TextAlignment = DevAge::Drawing::ContentAlignment::MiddleCenter;
                View = view;
            AutomaticSortEnabled = false;
        }
    };

Но в строке
view->Font = gcnew Font(FontFamily::GenericSansSerif, 10, FontStyle::Bold);
 появляется ошибка:
Error    1    error C2327: 'System::Windows::Forms::Control::Font' : is not a type name, static, or enumerator    c:\documents and settings\сергей\рабочий стол\vp\grid\grid\Form1.h    132    

Автор: Simplemortal 25.10.2007, 17:09
Последней ошибки уже нет.
Строку с ошибкой изменил на
Код

view->Font = gcnew System::Drawing::Font(FontFamily::GenericSansSerif, 10, FontStyle::Bold);

Но шрифт не изменяется, хотя аналогичный код C# (из предыдущего поста) работал.
Хотя "не изменяется" это слабо сказано - текст вообще не выводится


По прежнему актуальна проблема с созданием вертикального шрифта.

Такой шрифт не делается вертикальным:
Код

System::Drawing::Font ^f = gcnew System::Drawing::Font(FontFamily::GenericSansSerif, 10, FontStyle::Bold,
                            System::Drawing::GraphicsUnit::Point,90,true);

Разве последний параметр не отвечает за вертикальность шрифта??

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)