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

Отрисовка рисунка при загрузке формы

27.02.2018, 11:37. Показов 6745. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, такой вопрос, имеется рисунок. Как сделать так, чтобы он отрисовывать в pictureBox при загрузке формы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2018, 11:37
Ответы с готовыми решениями:

Отрисовка графика в pictureBox при загрузке формы
Доброй ночи! Есть форма, в которой располагается pictureBox1, на котором рисуется график с координатными осями. Необходимо сделать, что...

Не происходит отрисовка пользовательского контрола при загрузке формы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using...

Масштабирование рисунка при разворачивании формы
Я столкнулся с проблемой в C#.Я например, нарисовал пингвина, он находиться в левом углу. Как сделать так, чтобы когда разворачиваешь окно...

14
 Аватар для stelizhenets
12 / 12 / 9
Регистрация: 25.02.2018
Сообщений: 25
27.02.2018, 12:27
На событие Load для формы (дважды кликните мышкой по форме):
C#
1
2
3
4
private void Form1_Load(object sender, EventArgs e)
{
      pictureBox1.Image = Image.FromFile("E:\\1.png"); // сдесь укажите путь к рисунку
}
1
0 / 0 / 0
Регистрация: 27.02.2018
Сообщений: 35
27.02.2018, 18:14  [ТС]
Не совсем то, но спасибо. Я немного не так выразился. Попробую нагляднее
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace 111
{
    public partial class Form1 : Form
    {
        int a, xc, yc; 
        double[] x = new double[4];
        double[] y = new double[4];
        Point[] p1 = new Point[4];//массив точек для ромба 
 
        private void Form1_Load(object sender, EventArgs e)
        {
            a = 80; //размер фигуры
            //расположение фигуры в левом нижнем углу
            xc = Convert.ToInt32(a/2);
            yc = Convert.ToInt32(pictureBox1.Height - a / 2);
            //координаты точек фигуры относительно центра
            x[0] = Convert.ToInt32(0);
            y[0] = Convert.ToInt32(-a / 2.0);
            x[1] = Convert.ToInt32(a / 2.0);
            y[1] = Convert.ToInt32(0);
            x[2] = Convert.ToInt32(0);
            y[2] = Convert.ToInt32(a / 2.0);
            x[3] = Convert.ToInt32(-a / 2.0);
            y[3] = Convert.ToInt32(0);
            ris();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            ris();
        }
 
        public Form1()
        {
            InitializeComponent();
        }
        private void ris()
        {
            Graphics g = pictureBox1.CreateGraphics();
            xc = Convert.ToInt32(a / 2);
            yc = Convert.ToInt32(pictureBox1.Height - a / 2);
            Brush br1 = new SolidBrush(Color.FromArgb(0, 255, 0));
            Brush br2 = new SolidBrush(Color.FromArgb(255, 0, 0));
            Brush br3 = new SolidBrush(Color.FromArgb(0, 255, 0));
            g.Clear(SystemColors.Control);
 
            p1[0] = new Point((int)(x[0] + xc), (int)(y[0] + yc));
            p1[1] = new Point((int)(x[1] + xc), (int)(y[1] + yc));
            p1[2] = new Point((int)(x[2] + xc), (int)(y[2] + yc));
            p1[3] = new Point((int)(x[3] + xc), (int)(y[3] + yc));
            g.FillEllipse(br1, xc-(a/2),yc-(a/2), a, a);
            g.FillPolygon(br2, p1);
            g.FillEllipse(br3, xc - (a / 4), yc - (a / 4), a / 2, a / 2);
        }
    }
}
картинка рисуется после нажатия, а мне надо при загрузке формы. Возможно ли это реализовать.
0
 Аватар для stelizhenets
12 / 12 / 9
Регистрация: 25.02.2018
Сообщений: 25
27.02.2018, 18:41
Цитата Сообщение от Vadimustus Посмотреть сообщение
картинка рисуется после нажатия, а мне надо при загрузке формы
Все равно не совсем понятно что нужно делать... Вы же вызываете метод ris() при загрузке формы. Или его не достаточно?

Добавлено через 20 минут
Если картинка рисуется после нажатия, то можно выполнить нажатие нужной кнопки программно при загрузке формы:
C#
1
button1.PerformClick();
0
0 / 0 / 0
Регистрация: 27.02.2018
Сообщений: 35
27.02.2018, 20:20  [ТС]
метод ris() не рисует фигуры при загрузке формы, а только после нажатия кнопки. Нужно чтобы при загрузке формы сразу рисовались фигуры, без нажатия на кнопку. Хотелось бы узнать как это реализовать.

Добавлено через 18 секунд
C#
1
button1.PerformClick();
не получилось

Добавлено через 16 минут
Я пробовал вставить метод ris() в Load но ничего не происходит
0
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
27.02.2018, 20:50
Цитата Сообщение от Vadimustus Посмотреть сообщение
Я пробовал вставить метод ris() в Load но ничего не происходит
а если в Shown?
0
0 / 0 / 0
Регистрация: 27.02.2018
Сообщений: 35
27.02.2018, 21:19  [ТС]
Тоже не рисует
0
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
28.05.2018, 17:38
Вы решили эту проблему? получилось нарисовать фигуру при загрузке формы???
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
28.05.2018, 18:42
Vadimustus, IrenaIT, чтобы нарисовать что-либо при загрузке формы нужно использовать событие Paint, а не Load. Дело в том, что Paint возникает позже чем Load и если в нем будет пусто, то графика из Load просто затрется. Правда, нужно учитывать, что Paint, в отличие от Load, возникает не однократно при загрузке формы, а при каждой перерисовке. К примеру, при изменении размера.
1
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
28.05.2018, 18:46
да,спасибо))) уже сделала с помощью Paint
0
0 / 0 / 0
Регистрация: 27.02.2018
Сообщений: 35
13.06.2018, 15:50  [ТС]
Тут интересный момент получается, фигура то рисуется, суть в том что если вы отрисовать фигуру и свернули окно, то после его открытия фигура исчезает. Получается при запуске программы фигура отрисовывать сразу, но из-за того что окно не успевает полностью прогрузится просто пропадает. Лично я решил это таймером перед отрисовкой в лоад.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
13.06.2018, 16:09
Vadimustus, это решать надо событием Paint как описано в сообщении #9, а не таймером.
0
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
13.06.2018, 20:09
Вообще это (если вопрос о программе, а не её отдельной форме) называется Splash Screen и реализуется совершенно иначе. Отдельной формой, например, в своём отдельном же потоке.

Добавлено через 1 минуту
Splash скрин без заднего фона
0
0 / 0 / 0
Регистрация: 27.02.2018
Сообщений: 35
13.06.2018, 20:50  [ТС]
Мне в дальнейшем надо было запускать фигуру по дуге и заставить крутиться, причем скорость вращения, перемещения и размер фигуры задается пользователем. Ничего лучше я не придумал.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
14.06.2018, 14:36
как-то так...
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
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            Controls.Add(new CustomPictureBox
            {
                Location = new Point(12, 12),
                Name = "pictureBox1",
                Size = new Size(200, 200),
                TabIndex = 0,
                TabStop = false
            });
 
            InitializeComponent();
        }
    }
 
    public class CustomPictureBox : Control
    {
        private int size;
        private Rectangle outCircleRectangle;
        private Rectangle inCircleRectangle;
        private Point[] rhombusPoints;
        private int _x;
        private int _y;
 
        public CustomPictureBox(int a = 80)
        {
            size = a;
            SetPoints();
        }
 
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            SetPoints();
        }
 
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
 
            var g = pe.Graphics;
            var br1 = new SolidBrush(Color.FromArgb(0, 255, 0));
            var br2 = new SolidBrush(Color.FromArgb(255, 0, 0));
            var br3 = new SolidBrush(Color.FromArgb(0, 255, 0));
 
            g.Clear(SystemColors.Control);
 
            g.FillEllipse(Brushes.Green, outCircleRectangle);
            g.FillPolygon(Brushes.Red, rhombusPoints);
            g.FillEllipse(Brushes.Green, inCircleRectangle);
        }
 
        private void SetPoints()
        {
            _x = size / 2;
            _y = Height - size / 2;
 
            outCircleRectangle = new Rectangle(_x - (size / 2), _y - (size / 2), size, size);
            inCircleRectangle = new Rectangle(_x - (size / 4), _y - (size / 4), size / 2, size / 2);
            rhombusPoints = new[]
            {
                new Point(size / 2, Height - size),
                new Point(size, Height - size / 2),
                new Point(size / 2, Height),
                new Point(0, Height - size / 2),
            };
            
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2018, 14:36
Помогаю со студенческими работами здесь

Отрисовка (стираются части рисунка)
Есть объект panel. На нем я рисую эллипс. Когда убираю форму за экран, потом возвращаю - рисунок исчезает. Почему это происходит я знаю,...

Отрисовка изображения при открытии формы
Вопрос очень простой, но не понятный для меня. Приведу простейший пример using System; using System.Collections.Generic; using...

Нужно при загрузке формы загружать рандомный беграунд формы
Нужно при загрузке формы загружать рандомный беграунд формы. Все беграунды сохранены в отдельной папке. Пытался сделать сам не очень...

Отрисовка picturebox при загрузке
При загрузке формы в picturebox сразу должна происходить прорисовка, чего не происходит. Пробовал так: public Form1() { ...

Отрисовка рисунка
Привет всем) Есть код(смотрите вложение). Как мне вместо этого if (TileMap=='E') rectangle.setFillColor (Color::Red); сделать чтобы...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru