Страница: 1 | 2 |
Вопрос: Из ComboBox в Draw
Добавлено: 09.10.10 17:15
Автор вопроса:
Isaac
На форме есть ComboBox. Item'ы его цвета перьев - Pens.Black, Pens.Blue, Pens.Cyan и т.д.
Как их передать в DrawEllipse в качестве Pens? Например
Graf.DrawEllipse(ComboBox1.SelectedItem, 1, 1, 100, 100) для рисования эллипса?
P.S. Среда Visual Basic 2008.
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 09.10.10 17:52
Нужно привести ComboBox1.SelectedItem к типу Pen
Номер ответа: 2
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #2
Добавлено: 10.10.10 13:43
А как? Пример можно?
Номер ответа: 3
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #3
Добавлено: 10.10.10 13:45
А как? Пример можно?
Номер ответа: 4
Автор ответа: Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 10.10.10 15:09
Номер ответа: 5
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #5
Добавлено: 11.10.10 07:34
Не работает, выдает:
Unable to cast object of type 'System.String' to type 'System.Drawing.Pen'.
Номер ответа: 6
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 11.10.10 09:12
покажите код, который заполняет у вас Combobox
Номер ответа: 7
Автор ответа: Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #7
Добавлено: 11.10.10 09:27
можно по имени цвета:
Номер ответа: 8
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #8
Добавлено: 11.10.10 11:31
Dim r As IO.StreamReader
---------------------------------------------------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
 im strDoroga As String = "F:PensColor.txt"
 im FI As IO.FileInfo = New IO.FileInfo(strDoroga)
If FI.Exists Then
r = New IO.StreamReader(strDoroga)
While (r.Peek() > -1)
ComboBox1.Items.Add(r.ReadLine)
End While
r.Close()
Me.Button1.Enabled = False
Else
MsgBox("Где файл PensColor.txt ?"
End If
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
 im Graf As Graphics = PictureBox1.CreateGraphics
' Я думаю, здесь что-то делаем с
ComboBox1.SelectedItem и превращаем PenColor
Graf.DrawLine(PenColor, 1, 1, 100, 100)
End Sub
-------------------------------------------------------------------------------------------------------
'Файл PensColor.txt прикрепил
Pens.AliceBlue
Pens.AntiqueWhite
Pens.Aqua
Pens.Aquamarine
Pens.Azure
Pens.Beige
Pens.Bisque
Pens.Black
Pens.BlanchedAlmond
Pens.Blue
Pens.BlueViolet
Pens.Brown
Pens.BurlyWood
Pens.CadelElue
Pens.Chartreuse
Pens.Chocolate
Pens.Coral
Pens.CornflowerBlue
Pens.Cornsilk
Pens.Crimson
Pens.Cyan
'Заранее большое спасибо за помощь
Номер ответа: 9
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 11.10.10 12:17
ошибка номер 1 : "F:PensColor.txt"
номер 2 : MsgBox("Где файл PensColor.txt ?"
номер 3 : Dim r As IO.StreamReader
номер 4 : Dim Graf As Graphics = PictureBox1.CreateGraphics
номер 5 : If FI.Exists
номер 6 : While (r.Peek() > -1)
номер 7 : ComboBox1.Items.Add(r.ReadLine)
пока над этим поработай, а там посмотрим -_-
Номер ответа: 10
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #10
Добавлено: 11.10.10 14:31
У меня Button1_Click работает нормально и ComboBox1 заполняется, на самом деле эта строка у меня такая
Dim strDoroga As String = "F:\VB2008_Rab\ComboFile\PensColor.txt"
Вы помогите с ComboBox1_SelectedIndexChanged.
Номер ответа: 11
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #11
Добавлено: 11.10.10 15:31
а я и не говорю что он должен работать ненормально. просто написано либо нелогично, либо криво, либо и то и другое
Номер ответа: 12
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #12
Добавлено: 11.10.10 16:13
а как надо делать - это уже другой вопрос. и ответ на него прост - создавать элементы, и присваивать их свойству Tag (тип Object) нужное перо (Drawing.Pen). так-то
Номер ответа: 13
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #13
Добавлено: 11.10.10 16:13
а как надо делать - это уже другой вопрос. и ответ на него прост - создавать элементы, и присваивать их свойству Tag (тип Object) нужное перо (Drawing.Pen). так-то
Номер ответа: 14
Автор ответа: Isaac
Вопросов: 1
Ответов: 7
Профиль | | #14
Добавлено: 11.10.10 16:50
Уважаемый AgentFire! После выбора из ComboBox, элементы которого разные Pen'ы (Pens.Black, Pens.Blue, Pens.Cyan и т.д.), рисовать на/в PictureBox разные линии! Вы можете это показать? Большое спасибо.
Я подожду что скажет г-н EROS.
Номер ответа: 15
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #15
Добавлено: 11.10.10 17:52
Вы можете это показать?
Сделать всё за вас - не могу
Могу подсказать лишь некоторые, возможно не известные вам моменты.
как то - добавление элементов:
и тем не менее - это бессмысленно, ибо отображаться они будут как MyBase.ToString, т.е. Object.ToString, т.е. тупо как "System.Drawing.Pen", что: (1) не сделает никакого различия между цветами, и (2) не добавит ничего полезного в ваш опыт. посему прошу еще раз обратить внимание на мой предыдущий случайно сдублировавшийся пост и вникнуть в его суть