Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11

Как из ячейки datagridview подгрузить рисунок в PictureBox

06.06.2012, 12:35. Показов 3091. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Подскажите пожалуйста:
Не могу в picturebox подгрузить рисунок из ячейки datagridview. у ячейки тип DataGridViewImageColumn и рисунок в ней отображается нормально
а делал я так
VB.NET
1
voprosPic.Image = Image.FromFile(datagridview.Item(1, 1).Value)
и вот так еще пробовал)
VB.NET
1
voprosPic.Image = datagridview.Item(1, 1).Value
вроде на типы ругается
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2012, 12:35
Ответы с готовыми решениями:

Вывод картинки из ячейки DataGridView в PictureBox
Как вывести с DataGridView(там открываются файлы, строкового типа, в 2 колоны, они все разные..Как вывести под определенные значение...

Как подгрузить картинку в PictureBox при нажатии на кнопку
Доброго времени суток... Появилась проблема... Как можно подгрузить картинку в PictureBox при нажатии на кнопку?

Как сохранить рисунок из PictureBox?
:help: Как сохранить все что находится в PictureBox, а не только Image (если вставить картинку, то она сохраняется нормально)? ...

10
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11
13.06.2012, 14:23  [ТС]
все прям ринулись помогать). неужели никто не знает? не смог я прогуглить. и не ленивый я)
0
 Аватар для ZuMiks
124 / 102 / 5
Регистрация: 25.03.2012
Сообщений: 153
13.06.2012, 19:12
Ваш код вполне рабочий, подгружает картинку из ячейки.
VB.NET
1
voprosPic.Image = datagridview.Item(1, 1).Value
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11
14.06.2012, 14:14  [ТС]
Вот такую он мне ошибку выдает:
Не удалось привести тип объекта "System.DBNull" к типу "System.Drawing.Image".
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
14.06.2012, 14:30
Цитата Сообщение от Seven_X Посмотреть сообщение
Не удалось привести тип объекта "System.DBNull" к типу "System.Drawing.Image".
Ну наверное ячейка пустая.
Ты же картинку в ячейке помещаешь в Value?
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11
14.06.2012, 15:04  [ТС]
Ну наверное ячейка пустая.
Ты же картинку в ячейке помещаешь в Value?
да. если ячейка не пустая то ошибка:
Не удалось привести тип объекта "System.Byte[]" к типу "System.Drawing.Image".

в datagridview картинка отображается нормально, а в imagebox не хочет пихаться)
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
14.06.2012, 15:47
А как ты в ячейку помещаешь? Код покажи
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11
14.06.2012, 16:07  [ТС]
в общем у меня база mysql. это у меня будет тест. тестироваться можно будет по сети на предприятии.
к некоторым вопросам буду картинки
в редакторе вопросов я набиваю вопросы, которые имеют id компетенции (вопросы делятся на компетенции. допустим по безопасности будет 10 вопросов).

в mysql я вбиваю картинку так

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Quest_picPictureBox.Image = Image.FromFile(f1)
        End If
где соответственно Me.Quest_picPictureBox связана с базой.

далее при начале выбираются компетенции по которым будет тестирование (например их 3) и вопросы отсеиваются и забиваются в гриды (значит создается 3 грида и в них идут опросы):

VB.NET
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
'TODO: данная строка кода позволяет загрузить данные в таблицу "Rp2DataSet.quest". При необходимости она может быть перемещена или удалена.
        Me.QuestTableAdapter.Fill(Me.Rp2DataSet.quest)
       
        'будем загружать список компетенция для теста
        Dim file, i, j, l1, l2, t As Integer
        i = 0
        file = FreeFile()
        FileOpen(file, My.Computer.FileSystem.CurrentDirectory & "..\..\..\..\svyazi\" & dolgnost.Text, OpenMode.Input)
        Do While Not EOF(file)
 
            buferkompet.Item(0, 0).Value = LineInput(file)
            buferkompet.Item(1, 0).Value = LineInput(file)
            buferkompet.Rows.Insert(0, 1)
            i = i + 1
 
            ' sf = LineInput(file)
            ' ListBox1.Items.Add(sf)
        Loop
        FileClose()
        buferkompet.Rows.RemoveAt(0)
        l1 = 0
        l2 = 0
        'заполняем наш комбо и вопросы по компетенциям
        
 
        For i = 0 To buferkompet.Rows.Count - 1
            ComboBox1.Items.AddRange(New Object() {buferkompet.Item(0, i).Value})
            QuestBindingSource.Filter = "id_kompet='" & buferkompet.Item(1, i).Value & "'"
            datatest(i + 1) = New DataGridView
            'Me.Controls.Add(datatest(i + 1))
            'datatest(i + 1).Top = (i * 2 + 1) * 200
            For j = 1 To 22
                If Not (j = 14) Or (j = 15) Or (j = 16) Or (j = 17) Or (j = 18) Or (j = 19) Then
                    l1 = l1 + 1
                    col(l1) = New DataGridViewTextBoxColumn
                    datatest(i + 1).Columns.AddRange(col(l1))
                Else
                    l1 = l2 + 2
                    colpict(l2) = New DataGridViewImageColumn
                    datatest(i + 1).Columns.AddRange(colpict(l2))
                End If
            Next
            datatest(i + 1).Rows.Insert(0, QuestDataGridView.Rows.Count - 1)
            For j = 0 To QuestDataGridView.RowCount - 1
 
                For t = 0 To 19
                    datatest(i + 1).Item(t, j).Value = QuestDataGridView.Item(t, j).Value
                Next
                datatest(i + 1).Item(21, j).Value = 0
            Next
        Next
картинки в наших гридах и отображаются нормально. теперь при переключении вопроса нам надо чтоб картинка и нужному вопросу подгрузилась в picturebox. на 43 строке вылетает ошибка
VB.NET
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
 Public Sub vopros()
        CheckBox1.Checked = False
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = False
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "1" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox1.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "2" Then
            CheckBox1.Checked = False
            CheckBox3.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox2.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "3" Then
            CheckBox2.Checked = False
            CheckBox1.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox3.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "4" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox1.Checked = False
            CheckBox5.Checked = False
            CheckBox4.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "5" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox1.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = True
        End If
        VoprosBox1.Text = datatest(viborkomp + 1).Item(1, nvopros).Value
        voprosPic.Image = datatest(viborkomp + 1).Item(13, nvopros).Value
        '1 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(2, nvopros).Value.ToString) Then
            TextBox1.Visible = False
            PictureBox1.Visible = False
            CheckBox1.Visible = False
        Else
            TextBox1.Text = datatest(viborkomp + 1).Item(2, nvopros).Value
            TextBox1.Visible = True
            PictureBox1.Visible = True
            CheckBox1.Visible = True
        End If
        '2 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(3, nvopros).Value.ToString) Then
            TextBox2.Visible = False
            PictureBox2.Visible = False
            CheckBox2.Visible = False
        Else
            TextBox2.Text = datatest(viborkomp + 1).Item(3, nvopros).Value
            TextBox2.Visible = True
            PictureBox2.Visible = True
            CheckBox2.Visible = True
        End If
        '3 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(4, nvopros).Value.ToString) Then
            TextBox3.Visible = False
            PictureBox3.Visible = False
            CheckBox3.Visible = False
        Else
            TextBox3.Text = datatest(viborkomp + 1).Item(4, nvopros).Value
            TextBox3.Visible = True
            PictureBox3.Visible = True
            CheckBox3.Visible = True
        End If
        '4 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(5, nvopros).Value.ToString) Then
            TextBox4.Visible = False
            PictureBox4.Visible = False
            CheckBox4.Visible = False
        Else
            TextBox4.Text = datatest(viborkomp + 1).Item(5, nvopros).Value
            TextBox4.Visible = True
            PictureBox4.Visible = True
            CheckBox4.Visible = True
        End If
        '5 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(6, nvopros).Value.ToString) Then
            TextBox5.Visible = False
            PictureBox5.Visible = False
            CheckBox5.Visible = False
        Else
            TextBox5.Text = datatest(viborkomp + 1).Item(6, nvopros).Value
            TextBox5.Visible = True
            PictureBox5.Visible = True
            CheckBox5.Visible = True
        End If
    End Sub
вот весь код теста
VB.NET
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
Public Class test
    Dim viborkomp, nvopros As Integer
    Dim datatest(10) As DataGridView 'объявляем массив гридов
    Dim col(160) As DataGridViewTextBoxColumn
    Dim colpict(60) As DataGridViewImageColumn
 
    Public Sub vopros()
        CheckBox1.Checked = False
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = False
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "1" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox1.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "2" Then
            CheckBox1.Checked = False
            CheckBox3.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox2.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "3" Then
            CheckBox2.Checked = False
            CheckBox1.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = False
            CheckBox3.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "4" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox1.Checked = False
            CheckBox5.Checked = False
            CheckBox4.Checked = True
        End If
        If datatest(viborkomp + 1).Item(21, nvopros).Value.ToString = "5" Then
            CheckBox2.Checked = False
            CheckBox3.Checked = False
            CheckBox1.Checked = False
            CheckBox4.Checked = False
            CheckBox5.Checked = True
        End If
        VoprosBox1.Text = datatest(viborkomp + 1).Item(1, nvopros).Value
        '1 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(2, nvopros).Value.ToString) Then
            TextBox1.Visible = False
            PictureBox1.Visible = False
            CheckBox1.Visible = False
        Else
            TextBox1.Text = datatest(viborkomp + 1).Item(2, nvopros).Value
            TextBox1.Visible = True
            PictureBox1.Visible = True
            CheckBox1.Visible = True
        End If
        '2 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(3, nvopros).Value.ToString) Then
            TextBox2.Visible = False
            PictureBox2.Visible = False
            CheckBox2.Visible = False
        Else
            TextBox2.Text = datatest(viborkomp + 1).Item(3, nvopros).Value
            TextBox2.Visible = True
            PictureBox2.Visible = True
            CheckBox2.Visible = True
        End If
        '3 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(4, nvopros).Value.ToString) Then
            TextBox3.Visible = False
            PictureBox3.Visible = False
            CheckBox3.Visible = False
        Else
            TextBox3.Text = datatest(viborkomp + 1).Item(4, nvopros).Value
            TextBox3.Visible = True
            PictureBox3.Visible = True
            CheckBox3.Visible = True
        End If
        '4 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(5, nvopros).Value.ToString) Then
            TextBox4.Visible = False
            PictureBox4.Visible = False
            CheckBox4.Visible = False
        Else
            TextBox4.Text = datatest(viborkomp + 1).Item(5, nvopros).Value
            TextBox4.Visible = True
            PictureBox4.Visible = True
            CheckBox4.Visible = True
        End If
        '5 вариант ответа
        If String.IsNullOrEmpty(datatest(viborkomp + 1).Item(6, nvopros).Value.ToString) Then
            TextBox5.Visible = False
            PictureBox5.Visible = False
            CheckBox5.Visible = False
        Else
            TextBox5.Text = datatest(viborkomp + 1).Item(6, nvopros).Value
            TextBox5.Visible = True
            PictureBox5.Visible = True
            CheckBox5.Visible = True
        End If
 
 
        'voprosPic.Image = datatest(viborkomp + 1).Item(13, nvopros).Value
 
        
        'If datatest(viborkomp + 1).Item(13, nvopros).Value =  Then
        'Else
 
        'End If
 
        'datatest(viborkomp + 1).Item(3, nvopros).Value
 
    End Sub
 
    Private Sub test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: данная строка кода позволяет загрузить данные в таблицу "Rp2DataSet.quest". При необходимости она может быть перемещена или удалена.
        Me.QuestTableAdapter.Fill(Me.Rp2DataSet.quest)
       
        'будем загружать список компетенция для теста
        Dim file, i, j, l1, l2, t As Integer
        i = 0
        file = FreeFile()
        FileOpen(file, My.Computer.FileSystem.CurrentDirectory & "..\..\..\..\svyazi\" & dolgnost.Text, OpenMode.Input)
        Do While Not EOF(file)
 
            buferkompet.Item(0, 0).Value = LineInput(file)
            buferkompet.Item(1, 0).Value = LineInput(file)
            buferkompet.Rows.Insert(0, 1)
            i = i + 1
 
            ' sf = LineInput(file)
            ' ListBox1.Items.Add(sf)
        Loop
        FileClose()
        buferkompet.Rows.RemoveAt(0)
        l1 = 0
        l2 = 0
        'заполняем наш комбо и вопросы по компетенциям
        
 
        For i = 0 To buferkompet.Rows.Count - 1
            ComboBox1.Items.AddRange(New Object() {buferkompet.Item(0, i).Value})
            QuestBindingSource.Filter = "id_kompet='" & buferkompet.Item(1, i).Value & "'"
            datatest(i + 1) = New DataGridView
            Me.Controls.Add(datatest(i + 1))
            datatest(i + 1).Top = (i * 2 + 1) * 200
            For j = 1 To 22
                If Not (j = 14) Or (j = 15) Or (j = 16) Or (j = 17) Or (j = 18) Or (j = 19) Then
                    l1 = l1 + 1
                    col(l1) = New DataGridViewTextBoxColumn
                    datatest(i + 1).Columns.AddRange(col(l1))
                Else
                    l1 = l2 + 2
                    colpict(l2) = New DataGridViewImageColumn
                    datatest(i + 1).Columns.AddRange(colpict(l2))
                End If
            Next
            datatest(i + 1).Rows.Insert(0, QuestDataGridView.Rows.Count - 1)
            For j = 0 To QuestDataGridView.RowCount - 1
 
                For t = 0 To 19
                    datatest(i + 1).Item(t, j).Value = QuestDataGridView.Item(t, j).Value
                Next
                datatest(i + 1).Item(21, j).Value = 0
            Next
        Next
    End Sub
 
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        viborkomp = ComboBox1.SelectedIndex
        nvopros = 0
        Call vopros()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If nvopros = (datatest(viborkomp + 1).Rows.Count - 2) Then
 
        Else
            nvopros = nvopros + 1
            Call vopros()
        End If
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If nvopros = 0 Then
 
        Else
            nvopros = nvopros - 1
            Call vopros()
        End If
        
    End Sub
 
    Private Sub voprosPic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles voprosPic.Click
        pict.Show()
        pict.PictureBox1.Image = Me.voprosPic.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = False
        CheckBox1.Checked = True
        Label1.Text = datatest(viborkomp + 1).Item(7, nvopros).Value.ToString
        datatest(viborkomp + 1).Item(20, nvopros).Value = datatest(viborkomp + 1).Item(7, nvopros).Value
        datatest(viborkomp + 1).Item(21, nvopros).Value = 1
    End Sub
 
    Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click
        CheckBox1.Checked = False
        CheckBox3.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = False
        CheckBox2.Checked = True
 
        Label1.Text = datatest(viborkomp + 1).Item(8, nvopros).Value.ToString
        datatest(viborkomp + 1).Item(20, nvopros).Value = datatest(viborkomp + 1).Item(8, nvopros).Value
        datatest(viborkomp + 1).Item(21, nvopros).Value = 2
    End Sub
 
    Private Sub CheckBox3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox3.Click
        CheckBox2.Checked = False
        CheckBox1.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = False
        CheckBox3.Checked = True
        Label1.Text = datatest(viborkomp + 1).Item(9, nvopros).Value.ToString
        datatest(viborkomp + 1).Item(20, nvopros).Value = datatest(viborkomp + 1).Item(9, nvopros).Value
        datatest(viborkomp + 1).Item(21, nvopros).Value = 3
    End Sub
 
    Private Sub CheckBox4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox4.Click
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        CheckBox1.Checked = False
        CheckBox5.Checked = False
        CheckBox4.Checked = True
        Label1.Text = datatest(viborkomp + 1).Item(10, nvopros).Value.ToString
        datatest(viborkomp + 1).Item(20, nvopros).Value = datatest(viborkomp + 1).Item(10, nvopros).Value
        datatest(viborkomp + 1).Item(21, nvopros).Value = 4
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        result.Show()
        result.MdiParent = MenuRP
        Dim sum As Integer
 
        result.DataGridView1.Rows.Insert(0, ComboBox1.Items.Count)
        For i = 0 To ComboBox1.Items.Count - 1
            result.ComboBox1.Items.AddRange(New Object() {ComboBox1.Items(i)})
 
            sum = 0
            For j = 0 To datatest(i + 1).Rows.Count - 1
                sum = sum + datatest(i + 1).Item(20, j).Value
            Next
            result.DataGridView1.Item(0, i).Value = sum
        Next
 
 
    End Sub
 
 
    Private Sub CheckBox5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox5.Click
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        CheckBox1.Checked = False
        CheckBox4.Checked = False
        CheckBox5.Checked = True
        Label1.Text = datatest(viborkomp + 1).Item(11, nvopros).Value.ToString
        datatest(viborkomp + 1).Item(20, nvopros).Value = datatest(viborkomp + 1).Item(11, nvopros).Value
        datatest(viborkomp + 1).Item(21, nvopros).Value = 5
    End Sub
 
End Class
вот редактора вопросов
VB.NET
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
Public Class redaktor_q
 
    Dim usenow, shifr, s As String
    Dim vibcom, dl As Integer
 
    Public Sub updt()
        Me.KompetTableAdapter.Fill(Me.Rp2DataSet.kompet) 'обновляем базу
        Dim i, y As Integer
        y = 0
        'делее закидываем названия в комбобокс
        For i = 0 To KompetDataGridView.RowCount - 2
            If KompetDataGridView.Item(0, i).Value.ToString.Length = dl Then 'проверяем количество символов в строке
                ComboBox1.Items.AddRange(New Object() {KompetDataGridView.Item(1, i).Value}) 'забиваем названия 1ступени в комбобокс
                'здесь будут хранится индексы к нашей базе, при обращении в комбобокс
                DataGridView1.Rows.Add()
                DataGridView1.Item(0, y).Value = i.ToString
                y = y + 1
            End If
        Next
        'Me.KompetBindingSource.AddNew()
    End Sub
 
    Public Sub chek()
        Dim i, y As Integer
        Dim strok As String
        DataGridView1.Rows.Clear() 'почистим наш буфер ;)
        ComboBox1.Items.Clear() 'комбо почистить
        'Me.KompetBindingSource.RemoveAt(KompetDataGridView.Rows.Count.ToString - 2) 'удалим последнюю строчку, а то шкнит что пустая
        y = 0
        For i = 0 To Me.KompetDataGridView.Rows.Count - 2 'перебор
            strok = KompetDataGridView.Item(0, i).Value.ToString 'задаем переменной шифр из базы
            If usenow.Length < strok.Length And strok.Length < dl + 3 Then 'если шифр больше выбранного, то будем его проверять (нам ведь не нужны верхние ступени)
                strok = strok.Remove(strok.Length - 2) 'обрезаем первые цифры чтоб узнать пренадлежность к этой ступени
                'теперь будем проверять 
                If usenow = strok Then
                    ComboBox1.Items.AddRange(New Object() {KompetDataGridView.Item(1, i).Value}) 'забиваем в комбо название
                    DataGridView1.Rows.Add()
                    DataGridView1.Item(0, y).Value = i.ToString 'загоняем в буфер значение индекса
                    y = y + 1
                End If
            End If
        Next
        'Me.KompetBindingSource.AddNew() 'вернем удаленную строку
    End Sub
 
    Private Sub QuestBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuestBindingNavigatorSaveItem.Click
        Id_kompetTextBox.Text = Label4.Text
        Id_voprosaTextBox.Text = CStr(TimeOfDay) + " " + CStr(Date.Today)
        Me.Validate()
        Me.QuestBindingSource.EndEdit()
        On Error Resume Next
        Me.TableAdapterManager.UpdateAll(Me.Rp2DataSet)
    End Sub
 
    Private Sub redaktor_q_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: данная строка кода позволяет загрузить данные в таблицу "Rp2DataSet.kompet". При необходимости она может быть перемещена или удалена.
        Me.KompetTableAdapter.Fill(Me.Rp2DataSet.kompet)
        'TODO: данная строка кода позволяет загрузить данные в таблицу "Rp2DataSet.quest". При необходимости она может быть перемещена или удалена.
        'Me.QuestTableAdapter.Fill(Me.Rp2DataSet.quest)
 
        'Me.QuestionsTableAdapter.Fill(Me.Rp2DataSet.questions)
        'QuestionsBindingSource.Filter = "id_kompet='1201'"
 
        dl = 2
        usenow = ""
        Call updt()
        QuestBindingNavigator.Dock = DockStyle.None
        Label4.Text = ""
        Me.Text = "Редактор тестов"
 
    End Sub
 
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        vibcom = Convert.ToInt16(DataGridView1.Item(0, ComboBox1.SelectedIndex).Value)
        usenow = Me.KompetDataGridView.Item(0, vibcom).Value  'вытаскиваем шифр
 
        DataGridView2.Rows.Insert(0, 1) 'добавляем строку во второй буфер
        DataGridView2.Item(0, 0).Value = Me.KompetDataGridView.Item(1, vibcom).Value 'добавляем путь
        TextBox1.Text = ""
        'так записываем путь в лейбл
        Dim x As Integer
        For x = DataGridView2.Rows.Count - 2 To 0 Step -1
            TextBox1.Text = TextBox1.Text + DataGridView2.Item(0, x).Value + " - "
        Next
        ''''''''''''''
        Call chek()
        '''''''''''
        dl = dl + 2
        Label4.Text = usenow
        ComboBox1.Text = "Выберите отдел"
    End Sub
 
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim filt As String
        filt = "id_kompet='" & Label4.Text & "'"
        QuestBindingSource.Filter = filt
        Me.QuestTableAdapter.Fill(Me.Rp2DataSet.quest)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If usenow = "" Then
            MessageBox.Show("Вы на верхней ступени", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If
        dl = dl - 2
        usenow = usenow.Remove(usenow.Length - 2)
        DataGridView1.Rows.Clear() 'почистим наш буфер ;)
        ComboBox1.Items.Clear() 'комбо почистить
        Call chek()
        TextBox1.Text = ""
        'так записываем путь в лейбл
        DataGridView2.Rows.RemoveAt(0)
        Dim x As Integer
        For x = DataGridView2.Rows.Count - 2 To 0 Step -1
            TextBox1.Text = TextBox1.Text + DataGridView2.Item(0, x).Value + " - "
        Next
        Label4.Text = usenow
    End Sub
 
    Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
        Id_kompetTextBox.Text = Label4.Text
        Id_voprosaTextBox.Text = CStr(TimeOfDay)
    End Sub
 
    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Quest_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Otvet_1_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Otvet_2_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Otvet_3_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Otvet_4_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        On Error Resume Next
        Dim myStream As Object
        Dim openFileDialog1 As New OpenFileDialog()
        Dim f1 As String
        'openFileDialog1.InitialDirectory = Application.StartupPath
        openFileDialog1.Filter = "Файл для импорта (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            f1 = myStream.name
            Me.Otvet_5_picPictureBox.Image = Image.FromFile(f1)
        End If
    End Sub
 
    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        Me.Quest_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        Me.Otvet_1_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        Me.Otvet_2_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        Me.Otvet_3_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        Me.Otvet_4_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        Me.Otvet_5_picPictureBox.Image = Nothing
    End Sub
 
    Private Sub Quest_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quest_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Quest_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Otvet_1_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Otvet_1_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Otvet_1_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Otvet_2_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Otvet_2_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Otvet_2_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Otvet_3_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Otvet_3_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Otvet_3_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Otvet_4_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Otvet_4_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Otvet_4_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Otvet_5_picPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Otvet_5_picPictureBox.Click
        pict.Show()
        pict.PictureBox1.Image = Me.Otvet_5_picPictureBox.Image
        pict.MdiParent = MenuRP
    End Sub
 
    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        import.Show()
        import.MdiParent = MenuRP
    End Sub
End Class
0
 Аватар для ZuMiks
124 / 102 / 5
Регистрация: 25.03.2012
Сообщений: 153
14.06.2012, 16:11
Вот так:
VB.NET
1
2
3
4
5
6
Dim a() As Byte
        a = DataGridView.Item(1, 1).Value
        Dim imgNew As Bitmap
        Dim memImage As New System.IO.MemoryStream(a)
        imgNew = Image.FromStream(memImage)
        voprosPic.Image = imgNew
1
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
14.06.2012, 16:16
попробуй тогда записать в Stream массив байтов из ячейки (вроде как именно это там хранится, выходит), а уж потом отобразить через image.FromStream
1
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 11
14.06.2012, 16:19  [ТС]
Спасибо!
Вот так:
VB.NET
1
2
3
4
5
6
Dim a() As Byte
        a = DataGridView.Item(1, 1).Value
        Dim imgNew As Bitmap
        Dim memImage As New System.IO.MemoryStream(a)
        imgNew = Image.FromStream(memImage)
        voprosPic.Image = imgNew
помогло!) буду знать теперь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2012, 16:19
Помогаю со студенческими работами здесь

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

Как переместить отмасштабированный рисунок на PictureBox?
Здравия. столкнулся со следующей проблемой, при попытки переместить рисунок на X&lt; 0, то правая часть рисунка сдвинувшись влево оказалась...

Форматирование ячейки в dataGridView. Как поменять цвет определенной ячейки
Хочу поменять цвет выбранной ячейки, так что бы когда при выбраной строки цвет ячейки оставался таким же. Пример: Что бы дата...

Как программно загрузить рисунок в pictureBox из ресурса?
Как программно загрузить рисунок в pictureBox из ресурса?

Как замостить рисунок в элементе управления PictureBox?
Как замостить рисунок, например, в элементе управления PictureBox? Спасибо.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru