5 / 5 / 0
Регистрация: 15.04.2010
Сообщений: 130
1

Работа с PictureBox в VS2010

14.01.2011, 20:06. Показов 4192. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно чтоб на форме появилось пять изображений с одинаковым интервалом(в дальнейшем это будут игральные кости) создаю массив элементов класса PictureBox (нужен именно массив для удобства дальнейшего использования).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public Form1()
        {
            InitializeComponent();
            PictureBox[] kub = new PictureBox[5];
            for (int i = 0; i > 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Location = new Point(12 + 50 * i, 12);
                kub[i].Image = Image.FromFile("0r.jpg");
            }
        }
На форме ничего не отображается, файл этот в ресурсах. где здесь ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2011, 20:06
Ответы с готовыми решениями:

Работа с set_terminate в vs2010
Нужно перехватить непредусмотренное исключение.Делаю так #include "stdafx.h" #include <iostream>...

Работа с инсталлятором VS2010
Может кто-нибудь подскажет, как сделать так чтоб после инсталляции проекта по ярлыку запускался...

C# VS2010 мот кто скинит книгу или ссылку даст на скачку?? (vs2010 rus)
C# VS2010 мот кто скинит книгу или ссылку даст на скачку?? (vs2010 rus)

VS2010.Console Applications, Работа с файлами и папками.
Кто нибудь знает статью по работе с файлами и папками из Console Applications?Если да, то дайте...

12
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
14.01.2011, 20:27 2
забыл написать
C#
1
this.Controls.Add();
Вот, приспособь:
C#
1
2
3
4
5
6
7
8
9
 
            Image img = Image.FromFile("2.gif");
            PictureBox pbox = new PictureBox();
            pbox.Image = img;
            pbox.Width = 48;
            pbox.Height = 48;
            pbox.Left = 0;
            pbox.Top = 0;
            this.Controls.Add(pbox);
0
5 / 5 / 0
Регистрация: 15.04.2010
Сообщений: 130
14.01.2011, 23:00  [ТС] 3
Все равно не отображается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public Form1()
        {
            InitializeComponent();
            PictureBox[] kub = new PictureBox[5];
            Image img = Image.FromFile("0r.jpg");
 
            for (int i = 0; i > 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Location = new Point(12 + 50 * i, 12);
                kub[i].Left = 0;
                kub[i].Top = 0;
                kub[i].Image = img;
                this.Controls.Add(kub[i]);
            }
        }
выскакивает ошибка
Необработанное исключение типа "System.IO.FileNotFoundException" произошло в System.Drawing.dll

Дополнительные сведения: 0r.jpg
если писать полный путь к файлу то опять ничего не отображается
C#
1
            Image img = Image.FromFile(@"C:\Users\Mischa\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\0r.jpg");
тут наверное как-то через ресурсы нужно, но я только начинаю во все это вникать .
В конструкторе форм Image заполняется либо с ресурсов либо с помощью Bitmap
0
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
14.01.2011, 23:10 4
чет я вот не знаю, попробуй не в конструкторе сделать. Если также будет, знать не в конструкторе дело. Может инициализироваться не может в конструкторе ряд библиотек.
И для теста путь по короче сделай
C:\Users\Mischa\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\
замени на С:\

Исключение - не находит фаилы.

Скинь исходник сюда ,посмотрю.


Не по теме:

эх надо уже рихтера прочитать будет)

0
5 / 5 / 0
Регистрация: 15.04.2010
Сообщений: 130
14.01.2011, 23:30  [ТС] 5
исключение выбивает только тогда когда путь не прописан, а когда путь прописан просто пустая форма выскакивает
Form1.cs
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            PictureBox[] kub = new PictureBox[5];
            Image img = Image.FromFile(@"C:\0r.jpg");
 
            for (int i = 0; i > 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Location = new Point(12 + 50 * i, 12);
                kub[i].Left = 0;
                kub[i].Top = 0;
                kub[i].Image = img;
                this.Controls.Add(kub[i]);
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
           InitializeComponent();
            PictureBox[] kub = new PictureBox[5];
            Image img = Image.FromFile(@"C:\0r.jpg");
 
            for (int i = 0; i > 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Location = new Point(12 + 50 * i, 12);
                kub[i].Left = 0;
                kub[i].Top = 0;
                kub[i].Image = img;
                this.Controls.Add(kub[i]);
            }
        }
       
    }
}

Form1.Designer.cs
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
namespace WindowsFormsApplication1
{
    partial class Form1
    {
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
 
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        #region Код, автоматически созданный конструктором форм Windows
 
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            this.Throw = new System.Windows.Forms.Button();
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            // 
            // Throw
            // 
            this.Throw.Location = new System.Drawing.Point(285, 288);
            this.Throw.Name = "Throw";
            this.Throw.Size = new System.Drawing.Size(75, 23);
            this.Throw.TabIndex = 0;
            this.Throw.Text = "Бросить";
            this.Throw.UseVisualStyleBackColor = true;
            // 
            // pictureBox1
            // 
            this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
            this.pictureBox1.Location = new System.Drawing.Point(66, 177);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(50, 50);
            this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            this.pictureBox1.TabIndex = 1;
            this.pictureBox1.TabStop = false;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(677, 340);
            this.Controls.Add(this.pictureBox1);
            this.Controls.Add(this.Throw);
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);
 
        }
 
        #endregion
 
        private System.Windows.Forms.Button Throw;
        private System.Windows.Forms.PictureBox pictureBox1;
    }
}

Resources.Designer.cs
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
namespace WindowsFormsApplication1.Properties {
    using System;
    
    
    /// <summary>
    ///   Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
    /// </summary>
    // Этот класс создан автоматически классом StronglyTypedResourceBuilder
    // с помощью такого средства, как ResGen или Visual Studio.
    // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
    // с параметром /str или перестройте свой проект VS.
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        
        private static global::System.Resources.ResourceManager resourceMan;
        
        private static global::System.Globalization.CultureInfo resourceCulture;
        
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        
        /// <summary>
        ///   Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApplication1.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        
        /// <summary>
        ///   Перезаписывает свойство CurrentUICulture текущего потока для всех
        ///   обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
        
        internal static System.Drawing.Bitmap _0r {
            get {
                object obj = ResourceManager.GetObject("0r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _1r {
            get {
                object obj = ResourceManager.GetObject("1r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _2r {
            get {
                object obj = ResourceManager.GetObject("2r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _3r {
            get {
                object obj = ResourceManager.GetObject("3r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _4r {
            get {
                object obj = ResourceManager.GetObject("4r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _5r {
            get {
                object obj = ResourceManager.GetObject("5r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        internal static System.Drawing.Bitmap _6r {
            get {
                object obj = ResourceManager.GetObject("6r", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
    }
}
0
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
14.01.2011, 23:48 6
тык ми
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            
            Image img = Image.FromFile(@"C:\antivirus.png");
 
            PictureBox[] kub = new PictureBox[5];
 
            kub[0] = new PictureBox();
            kub[1] = new PictureBox();
            kub[2] = new PictureBox();
            kub[3] = new PictureBox();
            kub[4] = new PictureBox();
 
            for (int i = 0; i < 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Left = i * 100;
                kub[i].Top = 0;
                kub[i].Image = img;
                this.Controls.Add(kub[i]);
            }
        }
 
    }
}
Миниатюры
Работа с PictureBox в VS2010  
0
93 / 93 / 19
Регистрация: 25.12.2010
Сообщений: 316
15.01.2011, 03:54 7
Цитата Сообщение от Michey25 Посмотреть сообщение
Все равно не отображается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public Form1()
        {
            InitializeComponent();
            PictureBox[] kub = new PictureBox[5];
            Image img = Image.FromFile("0r.jpg");
 
            for (int i = 0; i > 5; i++)
            {
                kub[i].Width = 50;
                kub[i].Height = 50;
                kub[i].SizeMode = PictureBoxSizeMode.Zoom;
                kub[i].Location = new Point(12 + 50 * i, 12);
                kub[i].Left = 0;
                kub[i].Top = 0;
                kub[i].Image = img;
                this.Controls.Add(kub[i]);
            }
        }
выскакивает ошибка

если писать полный путь к файлу то опять ничего не отображается
C#
1
            Image img = Image.FromFile(@"C:\Users\Mischa\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\0r.jpg");
тут наверное как-то через ресурсы нужно, но я только начинаю во все это вникать .
В конструкторе форм Image заполняется либо с ресурсов либо с помощью Bitmap

Я канешно извиняюсь, но вам не кажется что ето подозрительно? - "for (int i = 0; i > 5; i++)"
Етот цыкл ниразу не пройдет. Вы написали И больше Пяти, а надо меньше.
1
5 / 5 / 0
Регистрация: 15.04.2010
Сообщений: 130
15.01.2011, 11:41  [ТС] 8
тьфу ты е-мое! только сейчас заметил что знак в форе попутал вместо i<5 поставил i>5)))
извиняюсь за беспокойство! спасибо что откликнулись!
0
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
15.01.2011, 13:22 9
C#
1
2
3
4
5
6
7
   PictureBox[] kub = new PictureBox[5];
 
            kub[0] = new PictureBox();
            kub[1] = new PictureBox();
            kub[2] = new PictureBox();
            kub[3] = new PictureBox();
            kub[4] = new PictureBox();
надо помимо этого писать, а то null reference будет
0
5 / 5 / 0
Регистрация: 15.04.2010
Сообщений: 130
19.01.2011, 20:01  [ТС] 10
А как прописать путь к картинке, если она лежит в каталоге программы, чтоб не указывать полный путь к файлу например "c:\users\user\documents\...\имя папки с проэктом" ? чтоб при перемещении папки с проэктом не нужно было менять путь к картинке чтоб программа работала.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
19.01.2011, 20:09 11
Michey25, воспользуйтесь Directory.GetCurrentDirectory - получите текущий каталог. И вообще, почитайте на будущее про Directory в MSDN и на этом форуме в специальной теме.
При использовании не забудьте про using System.IO;
0
Местный Ёжидзе
42 / 44 / 4
Регистрация: 03.03.2010
Сообщений: 225
20.01.2011, 00:25 12
Michey25, Вот, что бы получить путь:
C#
1
string app_dir = Environment.CurrentDirectory; // получает путь до папки с запущенной программой
Тут даже System.IO подключать не нужно
0
93 / 93 / 19
Регистрация: 25.12.2010
Сообщений: 316
20.01.2011, 01:36 13
Если картинка лежыть в той же папке что и .exe файл тогда достаточно написать просто название картинки. Например
C#
1
 pictureBox1.ImageLocation = "1.jpg";
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2011, 01:36
Помогаю со студенческими работами здесь

Работа с pictureBox...
Хочу в цикле обращаться к разным pictureBox... Понимаю что написан бред, может нужно както через...

Работа с Picturebox
Для проекта очень нужно, как заставить Picturebox крутиться вокруг своей оси?

Работа с picturebox
Добрый день, уже посмотрел все но так и не смог найти ответа. Дело в том нужно сделать что то на...

работа с PictureBox
Здравствуйте!Если кто знает..помогите пожалуйста. Проблема такая. есть 2 формы..они связаны. внутри...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru