Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
15 / 15 / 11
Регистрация: 07.02.2013
Сообщений: 168
1

Собственный Control, не полностью отображается текст

30.08.2017, 16:47. Показов 898. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь создать свой контрол, точнее наследую CheckBox и хочу добавить
1. Свойство Readonly
2. Цвет квадратика
3. Цвет галочки
Все выполняется, но есть одно но, я не могу изменить размер контрола, текст не помещается в размере, хотя Autosize ставлю true. что сделал не так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 public class ReadOnlyCheckBox : System.Windows.Forms.CheckBox
    {
        private bool readOnly;
 
        private Color checkColor;
 
        private Color boxColor;
 
        protected override void OnClick(EventArgs e)
        {
            // pass the event up only if its not readlonly
            if (!ReadOnly) base.OnClick(e);
        }
 
        public bool ReadOnly
        {
            get { return readOnly; }
            set { readOnly = value; }
        }
 
        public Color CheckColor
        {
            get { return checkColor; }
            set { checkColor = value; }
        }
 
        public Color BoxColor
        {
            get { return boxColor; }
            set { boxColor = value; }
        }
 
        protected override void OnPaint(PaintEventArgs pevent)
        {
            //base.OnPaint(pevent);
 
            pevent.Graphics.Clear(BackColor);
 
            using (SolidBrush brush = new SolidBrush(ForeColor))
                pevent.Graphics.DrawString(Text, Font, brush, 20, 4);
 
            Point pt = new Point(4, 4);
            Rectangle rect = new Rectangle(pt, new Size(12, 12));
 
            SolidBrush brushBoxColor = new SolidBrush(boxColor);
 
            pevent.Graphics.FillRectangle(brushBoxColor, rect);
 
            if (Checked)
            {
                using (SolidBrush brush = new SolidBrush(checkColor))
                using (Font wing = new Font("Wingdings", 12f))
                    pevent.Graphics.DrawString("ü", wing, brush, 1, 2);
            }
            pevent.Graphics.DrawRectangle(Pens.DarkSlateBlue, rect);
 
            Rectangle fRect = ClientRectangle;
            
            if (Focused)
            {
                fRect.Inflate(-1, -1);
                using (Pen pen = new Pen(Brushes.Gray) { DashStyle = DashStyle.Dot })
                    pevent.Graphics.DrawRectangle(pen, fRect);
            }
            
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2017, 16:47
Ответы с готовыми решениями:

Определить если Control полностью отрисован на форме
Каким способом можно определить если Control полностью отрисован в контейнере или только частично?

RadioButton текст не полностью отображается?
Вроде бы очень простой вопрос но никак не получается решить его.Проблема такая что если текст...

Не отображается текст из файла на русском языке, отображается только английский
StreamReader stream = new StreamReader(new...

Не отображается MS Calendar Control 8.0 на Windows 98
Да прибудет с Вами сила! Столкнулся я вот с какой неприятностью: собственно сабж и не желает...

3
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
31.08.2017, 13:32 2
Используй для отрисовки класс Checkboxrenderer
0
15 / 15 / 11
Регистрация: 07.02.2013
Сообщений: 168
31.08.2017, 15:52  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
Используй для отрисовки класс Checkboxrenderer
Подскажите как его туда прикрутить..
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
01.09.2017, 09:16 4
Нет времени писать пример, но использование очевидно. Это статический класс с набором методов для рисования CheckBox в разных состояниях. В своём методе OnPaint вызывай соответствующий метод, подставляй параметры и получишь желаемое изображение.
Ещё, поскольку текст не помещается, нужно пересчитывать размер текста с помощью Graphics.MeasureString и в соответствии с этим менять размеры.
0
01.09.2017, 09:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2017, 09:16
Помогаю со студенческими работами здесь

Не полностью отображается отчет
Здравствуйте есть отчет в FastReport. Проблема в том что если в MasterData1 нет данных то все что...

Тема полностью не отображается
Привет всем! Установил wordpress на hostinger.ru , там стандартная тема была, поставил новую, новая...

Список отображается не полностью
Здравствуйте. В общем есть listview в каждом item`е которого есть listview1 listview1 выводит...

Текст капчи отображается на Денвере, но не отображается на хостинге
Привет. У меня на ноуте установлена сборка Денвер. я доделал сайт и он в принципе нормально вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru