Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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
  1. Graf.DrawEllipse(CType(ComboBox1.SelectedItem, Pen), 1, 1, 100, 100)

Ответить

Номер ответа: 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-сайт: cargomaster.at.ua/
 Профиль | | #7
Добавлено: 11.10.10 09:27
можно по имени цвета:
  1. Dim cn As String = "имяцвета" ' сюда передаешь имя цвета. Например: black или yellow или controldark ...
  2.         Dim colr As Color = Color.FromName(cn)
  3.         Dim g As Graphics = Me.CreateGraphics
  4.         Dim pn As New Pen(colr)
  5.         g.DrawLine(pn, 100, 100, 200, 200)

Ответить

Номер ответа: 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

        ;Dim strDoroga As String = "F:PensColor.txt"
        ;Dim 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
        
       ;Dim 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
Isaac пишет:
Вы можете это показать?

Сделать всё за вас - не могу :)

Могу подсказать лишь некоторые, возможно не известные вам моменты.
как то - добавление элементов:
  1. Dim Pen1 = Pens.Black
  2. Dim Pen2 = Pens.White
  3. ComboBox1.Items.Add(Pen1)
  4. ComboBox1.Items.Add(Pen2)



и тем не менее - это бессмысленно, ибо отображаться они будут как MyBase.ToString, т.е. Object.ToString, т.е. тупо как "System.Drawing.Pen", что: (1) не сделает никакого различия между цветами, и (2) не добавит ничего полезного в ваш опыт. посему прошу еще раз обратить внимание на мой предыдущий случайно сдублировавшийся пост и вникнуть в его суть

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам