С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 26.09.2012
Сообщений: 30

Как сменить текст кнопки по умолчанию в созданном мной классе

05.10.2012, 22:09. Показов 2112. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вобщем начал изучать программирование недели 3 назад,начал с VB.Net 2010 чего то бейсик мне показался не очень(ограниченный он какой то) решил вот на с# пересесть.
Создал класс кнопки с графическим текстом,все вроде получилось но не как не пойму как сделать чтобы при переносе на форму ,на кнопке был новый текст с нумерацией а стандартный был не виден,
постоянно стирать надпись бутон надоело, помогите доделать код.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
 
namespace GrafTextButton
{
    class GrafButton : Button
    {
#region "  Переменные  "
        Color цвет1 = System.Drawing.Color.White;//Цвет фонового текста по умолчанию
        Color цвет2 = System.Drawing.Color.Black;//Цвет основного текста по умолчанию
        Font шрифт = new Font("Georgia", 12F, System.Drawing.FontStyle.Regular,
        System.Drawing.GraphicsUnit.Point, ((byte)(204)));//Шрифт по умолчанию
        string текст = "ГрафКнопка";//Надпись на кнопке по умолчанию
 
#endregion
#region "  Свойства кнопки  "
        public Color Цвет1 //Свойство для выбора цвета фонового текста
        { get { return цвет1; } set { цвет1 = value; } }
        public Color Цвет2 //Свойство для выбора цвета основного текста
        { get { return цвет2; } set { цвет2 = value; } }
        public Font Шрифт //Свойство для выбора шрифта
        { get { return шрифт; } set { шрифт = value; } }
        public string ГрафТекст //Свойство для вывода на кнопку текстового названия
        { get { return текст; } set { текст = value; } }
#endregion
#region  "  Функции  "
        protected override void OnPaint(PaintEventArgs e)
        {
            int X = Size.Width; //Назначение переменных высоты и ширины
            int Y = Size.Height;
            StringFormat sf = new StringFormat(); //Центрирование
            sf.Alignment = StringAlignment.Center;
            sf.LineAlignment = StringAlignment.Center;
            Graphics g = e.Graphics;
            base.OnPaint(e);
            g.DrawString(текст, шрифт, new SolidBrush(цвет1), X - X / 2, Y - Y / 2, sf);
            g.DrawString(текст, шрифт, new SolidBrush(цвет2), X - 1 - X / 2, Y - 1 - Y / 2, sf);
        }
#endregion
    }
}
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2012, 22:09
Ответы с готовыми решениями:

Как нарисовать на стандартной кнопке текст в созданном мной классе
Вообщем я программировать начал пару недель назад,накачал кучу книг ,примеров.... в гугл и в библиотеку просьба не посылать был уже там. ...

Ошибка в созданном мной классе
Здравствуйте! Создал класс: public class Table { DataRow dr; DataTable dt; ...

Как сменить версию Unity в созданном проекте
Хочу с Unity 5.6 перейти на 2017 без ручной сборки нового проекта. У меня все больше складывается впечатлению что люди пользующиеся...

4
12 / 12 / 7
Регистрация: 29.03.2011
Сообщений: 55
06.10.2012, 03:25
Передавай в конструктор класса текст кнопки.
0
1 / 1 / 1
Регистрация: 26.09.2012
Сообщений: 30
06.10.2012, 11:39  [ТС]
Не хватает понимания еще как работает конструктор ,вертел крутил его и так и сяк не выходит.
Не мог бы ты написать ?
Как создать конструктор понял:
C#
1
2
3
 public GrafButton()
{
}
Это чистый конструктор как я понял.
Пробовал так:
C#
1
2
3
4
 public GrafButton(string ГрафТекст)
{
текст =ГрафТекст;
}
Пишет что не возвращает 0,добавил пустой конструктор ошибка исчезла,как эту ошибку без задваивания конструкторов убрать?
Этот конструктор делает вроде тоже самое что у меня и так переменными прописано и выводится
Как убрать текст в поле свойства Text?
Вообщем приведи пожалста код как это сделать.
0
анимешник++
 Аватар для Iworb
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 427
06.10.2012, 12:59
Вы наследуете класс Button, что вам мешает переопределить стандартное поле Text, вместо вашего "текст"?
Работоспособность не проверял, но попробуйте:
C#
1
2
3
4
5
...
 Font шрифт = new Font("Georgia", 12F, System.Drawing.FontStyle.Regular,
        System.Drawing.GraphicsUnit.Point, ((byte)(204)));//Шрифт по умолчанию
        string Text = "ГрафКнопка";//Надпись на кнопке по умолчанию
...
0
1 / 1 / 1
Регистрация: 26.09.2012
Сообщений: 30
06.10.2012, 14:46  [ТС]
Цитата Сообщение от Iworb Посмотреть сообщение
Вы наследуете класс Button, что вам мешает переопределить стандартное поле Text, вместо вашего "текст"?
Работоспособность не проверял, но попробуйте:
C#
1
2
3
4
5
...
 Font шрифт = new Font("Georgia", 12F, System.Drawing.FontStyle.Regular,
        System.Drawing.GraphicsUnit.Point, ((byte)(204)));//Шрифт по умолчанию
        string Text = "ГрафКнопка";//Надпись на кнопке по умолчанию
...
Мой.Text скрывает базовый Button.Text если хотите переопределить используйте new ,как использовать new ?
народ я 3 дня С# изучаю просьба не писать пойди на северный полюс посмотри белый ли там снег и попробуй в ящике дома заморозить воду (не сообщая что нужно для этого холодильник сделать)
просьба просто код выложить как это сделать, а понимание его у меня со временем придет.

Добавлено через 53 минуты
Все разобрался.
C#
1
2
3
4
5
6
7
public GrafButton()
{
this.текст="Долбаный текст по умолчанию"
}
string текст ;
public new string Text //Свойство для вывода на кнопку текстового названия
        { get { return текст; } set { текст = value; } }
Огромное спасибо всем за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2012, 14:46
Помогаю со студенческими работами здесь

Как изменить название кнопки в классе dialog при нажатии на кнопку в классе mainwindow
Добрый день, я около месяца как начал изучать QT, то есть новичок. Собственно дело в следующем, создал новый проект (Приложение -> qt...

События мыши в созданном классе
Добрый день, уважаемые форумчане! Столкнулся со следующей проблемой. Через Opengl рендерю созданный мной объект класса на канвас, не...

Как сменить путь по умолчанию в командной строке CMD?
Подскажите как сменить путь по умолчанию в командной строке CMD. Пробовал HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment...

Кодировки. Как сменить? Какая по умолчанию? Какую использовать?
1) Какая кодировка стоит по умолчанию в C++ проектах visual studio 10? 2) Как эту кодировку сменить? 3) Как сделать возможным...

Воспользоваться объектом, созданном в другом классе
Подскажите, пожалуйста, как востопользоваться объектом, кторый был создан в другом классе. Вот например в классе MainForm создается...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru