Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
1 / 1 / 0
Регистрация: 13.04.2013
Сообщений: 69

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

26.11.2014, 18:24. Показов 4211. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите нужно реализовать функции командной строки в текстовом редакторе . На рисунке пример формы строки и какие функции нужно сделать .
Миниатюры
Как сделать панель редактирования шрифта в текстовом редакторе?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2014, 18:24
Ответы с готовыми решениями:

Сделать кнопку копировать временно активной + добавить функцию поиска в текстовом редакторе
Есть код текстового редактора, необходимо доработать его добавив или изменив 2 пункта: 1)Изменить кнопку копирования. Необходимо сдлеать...

Как реализовать сохранение документа в простейшем текстовом редакторе
Сделал блокнот(это мое первое windows приложение)он работает но сохраняет как то странно,помогите разобраться?

Как сделать выбор размера шрифта и начертания шрифта в ComboBox
ComboBox и шрифты.( Размер и начертания). Как сделать выбор размера шрифта и начертания шрифта в ComboBox? В С#.

8
 Аватар для awp-sirius
64 / 63 / 43
Регистрация: 01.05.2012
Сообщений: 535
27.11.2014, 02:09
так. и в чём ваш вопрос?
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
27.11.2014, 07:39
Надо подключить только FontDialog. PS выдернул из своего древнго проэкта поудаляешь маленько вызовы шрифтов.
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
if (richTextBox1.SelectionFont != null)
            {
                System.Drawing.Font currentFont = richTextBox1.SelectionFont;
                System.Drawing.FontStyle newFontStyle;
 
                if (richTextBox1.SelectionFont.Bold == true)
                {
                    newFontStyle = FontStyle.Regular;
                }
                else
                {
                    newFontStyle = FontStyle.Bold;
                }
 
                richTextBox1.SelectionFont = new Font(
                  currentFont.FontFamily, currentFont.Size, newFontStyle);
            }
        }
        private void жирныйToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Bold();
        }
 
        private void Italic()
        {
            if (richTextBox1.SelectionFont != null)
            {
                System.Drawing.Font currentFont = richTextBox1.SelectionFont;
                System.Drawing.FontStyle newFontStyle;
 
                if (richTextBox1.SelectionFont.Italic == true)
                {
                    newFontStyle = FontStyle.Regular;
                }
                else
                {
                    newFontStyle = FontStyle.Italic;
                }
 
                richTextBox1.SelectionFont = new Font(
                  currentFont.FontFamily, currentFont.Size, newFontStyle);
            }
        }
        private void наклонныйToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Italic();
        }
 
        private void Underline()
        {
            if (richTextBox1.SelectionFont != null)
            {
                System.Drawing.Font currentFont = richTextBox1.SelectionFont;
                System.Drawing.FontStyle newFontStyle;
 
                if (richTextBox1.SelectionFont.Underline == true)
                {
                    newFontStyle = FontStyle.Regular;
                }
                else
                {
                    newFontStyle = FontStyle.Underline;
                }
 
                richTextBox1.SelectionFont = new Font(
                  currentFont.FontFamily, currentFont.Size, newFontStyle);
            }
        }
        private void подчеркиваниеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Underline();
        }
 
        private void Strikeout()
        {
            if (richTextBox1.SelectionFont != null)
            {
                System.Drawing.Font currentFont = richTextBox1.SelectionFont;
                System.Drawing.FontStyle newFontStyle;
 
                if (richTextBox1.SelectionFont.Strikeout == true)
                {
                    newFontStyle = FontStyle.Regular;
                }
                else
                {
                    newFontStyle = FontStyle.Strikeout;
                }
 
                richTextBox1.SelectionFont = new Font(
                  currentFont.FontFamily, currentFont.Size, newFontStyle);
            }
        }
        private void зачеркиваниеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Strikeout();
        }
 
        private void SelectionFont()
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SelectionFont = fontDialog1.Font;
            }
        }
Добавлено через 1 минуту
Это диалоговое окно выбора шрифтов которые есть в системе.
C#
1
2
3
4
5
6
7
private void SelectionFont()
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SelectionFont = fontDialog1.Font;
            }
        }
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
27.11.2014, 08:55
Примерно так:
Кликните здесь для просмотра всего текста
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
67
public partial class MainForm : Form {
    public MainForm() {
        InitializeComponent();
        richTextBox1.SelectionChanged += richTextBox1_SelectionChanged;
        FontFamilyToolStripComboBox.SelectedIndexChanged += FontFamilyToolStripComboBox_SelectedIndexChanged;
        FontSizeToolStripComboBox.TextChanged += FontSizeToolStripComboBox_TextChanged;
        BoldToolStripButton.Click += BoldToolStripButton_Click;
        ItalicToolStripButton.Click += ItalicToolStripButton_Click;
        UnderlineToolStripButton.Click += UnderlineToolStripButton_Click;
        BulletsToolStripButton.Click += BulletsToolStripButton_Click;
        FillFontComboBoxes();
        UpdateFontToolbar();
    }
    /// Обновление панели шрифта по выделенному тексту
    private void UpdateFontToolbar() {
        BoldToolStripButton.Checked = richTextBox1.SelectionFont.Style.HasFlag(FontStyle.Bold);
        ItalicToolStripButton.Checked = richTextBox1.SelectionFont.Style.HasFlag(FontStyle.Italic);
        UnderlineToolStripButton.Checked = richTextBox1.SelectionFont.Style.HasFlag(FontStyle.Underline);
        BulletsToolStripButton.Checked = richTextBox1.SelectionBullet;
        FontFamilyToolStripComboBox.SelectedItem = richTextBox1.SelectionFont.FontFamily.Name;
        FontSizeToolStripComboBox.Text = richTextBox1.SelectionFont.Size.ToString();
    }
 
    /// Заполнение списков имён шрифтов и размеров
    private void FillFontComboBoxes() {
        FontFamilyToolStripComboBox.Items.AddRange((new System.Drawing.Text.InstalledFontCollection()).Families.Select(f => f.Name).ToArray());
        FontSizeToolStripComboBox.Items.AddRange(new object[] { 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 });
    }
 
    private void richTextBox1_SelectionChanged(object sender, EventArgs e) {
        UpdateFontToolbar();
    }
 
    #region События панели инструментов
    /// Выбор шрифта
    private void FontFamilyToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e) {
        richTextBox1.SelectionFont = new Font(FontFamily.Families[FontFamilyToolStripComboBox.SelectedIndex], richTextBox1.SelectionFont.Size, richTextBox1.SelectionFont.Style);
    }
 
    /// Размер шрифта
    private void FontSizeToolStripComboBox_TextChanged(object sender, EventArgs e) {
        float emSize = richTextBox1.SelectionFont.Size;
        if (!float.TryParse(FontSizeToolStripComboBox.Text, out emSize)) return;
        richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont.FontFamily, emSize, richTextBox1.SelectionFont.Style);
    }
 
    /// Маркированный список
    private void BulletsToolStripButton_Click(object sender, EventArgs e) {
        richTextBox1.SelectionBullet = BulletsToolStripButton.Checked;
    }
 
    /// Подчёркивание
    private void UnderlineToolStripButton_Click(object sender, EventArgs e) {
        richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Underline);
    }
 
    /// Наклонный шрифт
    private void ItalicToolStripButton_Click(object sender, EventArgs e) {
        richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Italic);
    }
 
    /// Полужирный шрифт
    private void BoldToolStripButton_Click(object sender, EventArgs e) {
        richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Bold);
    } 
    #endregion
}
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
27.11.2014, 09:03
ViterAlex, почти такой же код как у меня. Только по другомц совсем.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
27.11.2014, 09:04
ivan r, только в два раза короче
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
27.11.2014, 09:09
ViterAlex, перезалей проэкт в этом ошибка. Не запускается на панель размера шрифтов хочу посмотреть.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
27.11.2014, 11:52
Действительно, ошибка: посыпались связи между проектом и формой. Исправил
Вложения
Тип файла: zip TextEditorExample.zip (17.6 Кб, 83 просмотров)
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
27.11.2014, 11:57
ViterAlex, о спс узнал для новые функции. А можешь помочь с горячими клавишами? А то уже три часа сижу.

Добавлено через 1 минуту
вот тема
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2014, 11:57
Помогаю со студенческими работами здесь

Шрифт в текстовом редакторе
Помогите нужно реализовать смену шрифтов с помощью СоmBox , список шрифтов сделал, вот не могу сделать , что бы шрифт менялся только у...

Синхронизация в текстовом редакторе
Приветсвую! Помогите додуматься как реализовать синхранизацию изменений данных несколькими людьми в текстовом файле. То есть хочу добиться...

Как через TColorDialog изменить цвет шрифта в текстовом редакторе?
Как через TColorDialog изменить цвет шрифта в текстовом редакторе?

Изменение шрифта в самодельном текстовом редакторе
Пытаюсь реализовать простенький текстовый редактор на Python 3.1 и столкнулся с проблемой - возможно ли реализовать диалог со...

Нужно написать функцию редактирования vector<string> в текстовом редакторе в консоли
Открываем файл в консоли, выводим текст на экран void WriteVector(vector&lt;string&gt; v) { for (int i = 0; i&lt;v.size(); i++) cout...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru