С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# не подключается к smpt. c# и яндекс https://www.cyberforum.ru/ windows-forms/ thread1315021.html
//Адрес SMTP-сервера String smtpHost = comboBox1.Text; //Порт SMTP-сервера int smtpPort = Convert.ToInt16(comboBox2.Text); //Логин String smtpUserName = textBox1.Text; //Пароль String smtpUserPass = textBox2.Text; //Создание подключения
Движение рисунка в форме C#
Задание: Нарисовать треугольник, который движется вниз до соприкосновения со стенкой и обратно. У меня рисует треугольник по координатам, и я не знаю, как сделать, чтобы он начал двигаться сверху вниз, Нам надо создать какие-либо x0, y0? и изменять уже их координаты x0+30;y0+50, и с помощью таймера изменять координаты? using System; using System.Collections.Generic; using...
C# Метод Цезаря в Windows Forms Нужно создать программу методом Цезаря, но в C# Windows Forms.Я видел много вариантов в Console, но не могу их преобразовать в Forms. https://www.cyberforum.ru/ windows-forms/ thread1314960.html C# Поиск по datagridview данных из textbox без учета регистра Добрый день. Поиск работает, но при вводе данных нужно учитывать Заглавные и строчные буквы. Подскажите, пожалуйста, как это можно обойти. Вот код: int _result = 0; _result = String.Compare(grid_main.Rows.Cells.Value.ToString(),textBox_search.Text,StringComparison.OrdinalIgnoreCase); if (_result >0) { } или так: https://www.cyberforum.ru/ windows-forms/ thread1314860.html
Изменение Image C#
Здравствуйте. Есть изображение (pictureBox1) с Image (411.png). Необходимо сделать чтоб при первом нажатии на pictureBox1, Image становился не 411.png, а 421.png, при втором Image =411.png и так далее. Как реализовать? P.S. 411.png и 421.png находятся в Resourses
C# C# smtp проверить подключение без отправки сообщения Как проверить подключение к серверу smtp без отправки сообщения. https://www.cyberforum.ru/ windows-forms/ thread1314836.html
C# Работа с textbox. Сохранение текста при выходе из программы только если textbox имеет текст Создал форму в которой есть textbox и ToolStripMenuItem - кнопка выхода из приложения. Идея в том, что если textbox не имеет символов, то мы просто закрываем программу. Если в textbox есть символы, мы спрашиваем пользователя о том, сохранить ли файл, содержащий текст textbox. private void выходToolStripMenuItem_Click(object sender, EventArgs e) { if(textBox1.Text == null)... https://www.cyberforum.ru/ windows-forms/ thread1314796.html Задача на использование классов и объектов. ошибка C#
Здравствуйте, помогите, пожалуйста, с ошибкой. Задача: Задача на использование классов и объектов, в которых данные описаны в качестве полей. Реализовать класс заданной структуры. В нём предусмотреть конструктор для установки начальных значений полей. Создать объект на основе созданного класса. Осуществить использование объекта в программе. Комплексное число (a+jb) в алгебраической форме...
C# Свойство Duration в WMPlayer или как вывести длительность аудио-видео? Есть проигрыватель аудио-видео. Закинут компонент WMPLAYER. Воспроизводит видео-аудио НЕ через wmplayer.Так вот, как вывести длительность файла в лейбл, используя свойство axWindowsMediaPlayer1.currentMedia.duration или axWindowsMediaPlayer1.currentMedia.durationString? Прогу прикрепил в тему. https://www.cyberforum.ru/ windows-forms/ thread1314740.html C# Перезапуск приложения Смотрите, я скрываю первую форуме и показываю вторую. this.Visible = false; var form2 = new Form2(); form2.Visible = true; Теперь я на второй форме жму кнопку на которой код: Application.Restart(); https://www.cyberforum.ru/ windows-forms/ thread1314694.html
C# Разработать программное обеспечение для управления справочником на языке С#
Разработать программное обеспечение для управления справочником "Предметная область" с использованием объектно-ориентированного подхода.Работать с различными источниками данных (В памяти, бинарный(сериализация) и текстовый файл). Для этого реализовать общий интерфейс, для выполнения основных операций (создание,чтение, обновление, удаление). Для каждого типа хранилища, должен быть разработан свой...
C# Где ошибка в коде обработки клика на кнопке? { if (e.KeyCode == Keys.Enter) { Random r = new Random(); while(true) { int i = r.Next(0, 36); textBox1.Text += string.Format("({0}) ", i); } } } https://www.cyberforum.ru/ windows-forms/ thread1314562.html
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
30.11.2014, 23:08 0

Нужен пример класса, от которого будет наследоваться Button - C# - Ответ 6922965

30.11.2014, 23:08. Показов 1484. Ответов 11
Метки (Все метки)

Ответ

Maks1980, да по-разному можно. Например так. Во-первых нужно отделить модель от вида, создаем "Среду"/"Документ" где храним все что понадобится для рисования, методы загрузки/сохранения итд. Да, "Текущий цвет" цвет нужно хранить в отдельном свойстве, завязав его изменение на события, весть код который у вас лежит в форме следует вынести в UserControl.
DrawEnvironment
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
class DrawEnvironment
{
    Bitmap bmp;
    public Bitmap Bitmap
    {
        get { return bmp; }
        set 
        { 
            bmp = value;
            Graphics = Graphics.FromImage(bmp);
            Refresh();
        }
    }
 
    public Color Color
    {
        set 
        {
            Brush = new SolidBrush(value);
            Pen = new Pen(value, 2.0f);
        }
    }
 
    public Graphics Graphics;
    public event EventHandler OnBitmapUpdate;
    public Brush Brush { get; private set; }
    public Pen Pen { get; private set; }
 
    public void Refresh()
    {
        if (OnBitmapUpdate != null)
            OnBitmapUpdate(this, EventArgs.Empty);
    }
}

Теперь класс инструмент (можно реализовать не классом а интерфейсом), сюда пишем что понадобится для рисования всех фигур (чтобы код не повторять):
Instrument
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Instrument
{
    protected DrawEnvironment de;
 
    public Instrument(DrawEnvironment de)
    {
        this.de = de;
    }
 
    protected bool IsInitialized
    { get { return de != null && de.Bitmap != null; } }
 
    public virtual void OnMouseDown(float x, float y) { }
 
    public virtual void OnMouseMove(float x, float y) { }
 
    public virtual void OnMouseUp(float x, float y) { }
}

Я бы от него унаследовал два класса - первый это построение фигур по двум точкам (от него - эллипс, линия, прямоугольник), второй - непрерывные построители (карандаш, кисть итд..). Ну можно унаследовать только шесть штук, пример "карандаша":
Pencil
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
class Pencil : Instrument
{
    bool IsMousePressed;
    PointF pStart;
 
    public Pencil(DrawEnvironment de) : base(de) { }
 
    public override void OnMouseDown(float x, float y)
    {
        IsMousePressed = true;
        pStart = new PointF(x, y);
    }
 
    public override void OnMouseUp(float x, float y)
    {
        IsMousePressed = false;
    }
 
    public override void OnMouseMove(float x, float y)
    {
        if (IsInitialized && IsMousePressed)
        {
            de.Graphics.DrawLine(de.Pen, pStart.X, pStart.Y, x, y);
            pStart = new PointF(x, y);
            de.Refresh();
        }
    }        
}

На форме объявляем переменную "Текущий инструмент", передаем ему события с picturebox, можно подвязать на события. Так же можно хранить коллекцию инструментов с иконками итд, загружать их динамически, создавать тулбары для них из конфига, иначе - просто при клике на кнопку - меняем значение CurrentInstrument. Аналогично, можно отвязать pictureBox от формы, создав отдельный компонент для рисования
Form
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
public partial class Form1 : Form
{
    DrawEnvironment de;
    Instrument CurrentInstrument;
 
    public Form1()
    {
        InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        de = new DrawEnvironment();
        de.Bitmap = new Bitmap(200, 200);
        de.Color = Color.Black;
        de.OnBitmapUpdate += de_OnBitmapUpdate;
    }
 
    void de_OnBitmapUpdate(object sender, EventArgs e)
    {
        pictureBox1.Image = de.Bitmap;
    }
 
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (CurrentInstrument != null)
        {
            CurrentInstrument.OnMouseDown(e.X, e.Y);
        }
    }
 
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (CurrentInstrument != null)
        {
            CurrentInstrument.OnMouseMove(e.X, e.Y);
        }
    }
 
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        if (CurrentInstrument != null)
        {
            CurrentInstrument.OnMouseUp(e.X, e.Y);
        }
    }
 
    // Такой код для каждой кнопки
    private void button1_Click(object sender, EventArgs e)
    {
        CurrentInstrument = new Pencil(de);
    }
 
    /*private void ColorPickerColorChanged(object sender, EventArgs e)
    {
        // Событие смены цвета
        de.Color = (sender as ColorPicker).Color;
    }*/
}


Вернуться к обсуждению:
Нужен пример класса, от которого будет наследоваться Button C#
1
Заказать работу у эксперта
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2014, 23:08
Готовые ответы и решения:

Нужен пример неизменяемого класса и класса от которого нельзя наследоваться
Здравствуйте! Нужно привести пример неизменяемого класса и класса от которого нельзя наследоваться.

Нужен пример класса
Привести пример класса для работы с комплексными числами и содержащего перегруженную операцию для...

Реализовать GenericRepository, который будет наследоваться от IEntityRepository<T>
Привет всем. Объясните пожалуйста элементарные вещи новичку. Есть у меня интерфейс interface...

Нужен пример создания статического класса
Приведите, пожалуйста, пример создания статического класса.

11
30.11.2014, 23:08
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2014, 23:08
Помогаю со студенческими работами здесь

Нужен пример описания любого класса
Люди добрые, подскажите, может кто делал описание класса в С++, и у вас осталась работа? Можете...

Как наследоваться от класса TIniFile?
class TFile : public TIniFile { void _fastcall SaveToFile(UnicodeString Path, TFL *L); void...

Нужен пример с глобальной переменной которую можно будет использовать в StringGrid
Пожалуйста помогите . Может ктонибудь набросать пример с глобальной переменной которую можно...

Создание нескольких объектов класса и их сохранение (Нужен пример)
Собственно вопрос в названии темы. Можно какую-нибудь самую простейшую программу, которая создает...

0
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru