С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Lihoj
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 3
1

NullReferenceException при клике на ComboBox

07.01.2017, 17:11. Просмотров 260. Ответов 5
Метки нет (Все метки)

Добрый день! Форма работает нормально пока не кликаю по ComboBox. Выдает ошибку:
System.NullReferenceException не обработано
Message=Ссылка на объект не указывает на экземпляр объекта.
Source=WindowsFormsApplication1
А код такой:
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
106
107
108
109
110
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 Main_Form : Form
    {
        bool isPressed;                             // нажатие клавиши мыши
        int x1, y1, x2, y2;                         // координаты мыши
        Bitmap snapshot, tempDraw;    // снимки экрана
        Color foreColor;                            // цвет
        int lineWidth;                                // ширина линий
        string selectedTool;                      // выбранный инструмент
        string smooth = "None";              // сглаживание
        public Main_Form()        
        {
            InitializeComponent();
            snapshot = new Bitmap(Box1.ClientRectangle.Width,
 Box1.ClientRectangle.Height);
            tempDraw = (Bitmap)snapshot.Clone();
            foreColor = Color.Black;
            lineWidth = 3;
            Pencil.Checked = true;
            selectedTool = "Pencil";
        }
 
        private void Box1_MouseDown(object sender, MouseEventArgs e)
        {
            isPressed = true;
            x1 = e.X;
            y1 = e.Y;
            tempDraw = (Bitmap)snapshot.Clone();
        }
 
        private void Box1_MouseMove(object sender, MouseEventArgs e)
        {
            Graphics g = Box1.CreateGraphics();
            if (isPressed)
            {
                x2 = e.X;
                y2 = e.Y;
                Box1.Invalidate();
                Box1.Update();
            }
          
        }
 
        private void Box1_MouseUp(object sender, MouseEventArgs e)
        {
            isPressed = false;
            snapshot = (Bitmap)tempDraw.Clone();
        }
 
        private void Box1_Paint(object sender, PaintEventArgs e)
        {
            if (selectedTool != "Pencil") tempDraw = (Bitmap)snapshot.Clone();
            Graphics g = Graphics.FromImage(tempDraw);
            Pen myPen = new Pen(foreColor, lineWidth);
            switch (selectedTool)
            {
                case "Line":
                    if (tempDraw != null)
                        g.DrawLine(myPen, x1, y1, x2, y2);
                    myPen.Dispose();
                    e.Graphics.DrawImageUnscaled(tempDraw, 0, 0);
                    break;
                case "Rectangle":
                    if (tempDraw != null)
                        g.DrawRectangle(myPen, x1, y1, x2, y2);
                    break;
                case "Pencil":
                    if (tempDraw != null)
                    {
                        g.DrawLine(myPen, x1, y1, x2, y2);
                        x1 = x2;
                        y1 = y2;
                    }
                    break;
                default: break;
            }
            myPen.Dispose();
            e.Graphics.DrawImageUnscaled(tempDraw, 0, 0);
            g.Dispose();
        }
 
        private void tool_Click(object sender, EventArgs e)
        {
            Line.Checked = false;
            Rectangle.Checked = false;
            Pencil.Checked = false;
            ToolStripButton btnClicked = sender as ToolStripButton;
            btnClicked.Checked = true;
            selectedTool = btnClicked.Name;
        }
 
       private void toolStripComboBox_Click(object sender, EventArgs e)
        {
            lineWidth =
               int.Parse(toolStripComboBox.SelectedItem.ToString().Remove(1));
        }
 
           
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2017, 17:11
Ответы с готовыми решениями:

Заполнение ComboBox.Items при клике
Какое событие использовать у ComboBox в режиме DropDown, чтобы сформировать...

Формирование Combobox по DataGridView - ошибка NullReferenceException was unhandled
Здравствуйте. Суть проблемы в следующем. Имеется DataGridView, в который...

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

NullReferenceException при вызове делегата
/// Создан новый класс. public static void ParsGrups() { var form =...

Nullreferenceexception Ошибка при сохранении файла
Привет всем, сейчас лето и я решил начать учить свой любимый С#, столкнулся с...

5
Reckit
22 / 22 / 13
Регистрация: 05.09.2015
Сообщений: 142
07.01.2017, 20:11 2
это значит что ты либо раньше времени удаляешь этот объект, либо не инитиализируешь его ключевым словом new
0
Lihoj
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 3
07.01.2017, 20:15  [ТС] 3
Я извиняюсь! Я всего лишь учусь! А куда вставить new?
0
Reckit
22 / 22 / 13
Регистрация: 05.09.2015
Сообщений: 142
07.01.2017, 20:38 4
не знаю.. в какой строке это выдаёт?

Добавлено через 6 минут
Цитата Сообщение от Lihoj Посмотреть сообщение
int.Parse(toolStripComboBox.SelectedItem.ToString().Remove(1));
возможно дело в Remove(1).
0
Lihoj
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 3
08.01.2017, 13:41  [ТС] 5
Да єто здесь, но как исправить?
C#
1
2
lineWidth =
               int.Parse(toolStripComboBox.SelectedItem.ToString().Remove(1));
0
nedel
618 / 607 / 358
Регистрация: 09.04.2014
Сообщений: 1,443
Завершенные тесты: 1
08.01.2017, 15:17 6
Цитата Сообщение от Lihoj Посмотреть сообщение
но как исправить?
C#
1
2
if(toolStripComboBox.SelectedItem!=null)
   lineWidth = int.Parse(toolStripComboBox.SelectedItem.ToString().Remove(1));
0
08.01.2017, 15:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2017, 15:17

NullReferenceException при обращении к контролу по имени
Здравствуйте. Собственно код: (this.Controls as Label).Text = "+"...

System.NullReferenceException при обращении к свойству класса
private void TapOnTile(object sender, GestureEventArgs e) { ...

При работе программы вылетает исключение NullReferenceException
Добрый вечер, при работе программы выливает исключение на строчки вот само...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru