Реализовать свойство UserControl, принимающее массив - Visual Basic .NET

  1. Есть UserControl в него надо передать двумерный массив, примерно как это работает в ListBox`е со свойством Items. Что-то никак не могу понять, как это сделать. Подскажите, пожалуйста.


textual

Код:

Public Class UserControl1
    Private _List As New System.Collections.ObjectModel.Collection(Of String)
    Public ReadOnly Property List As System.Collections.ObjectModel.Collection(Of String)
        Get
            Return _List
        End Get
    End Property
End Class


Похожие ответы
  1. Нужно сделать прирост для BunifuProgressBar. Но, дело в том, что такого свойства Increment в данном прогресс баре нету. Как быть? Мне подсказали что можно напрямую менять значение через Value. Но как? В общем, оставлю тут код где надо сделать прирост.vb.net1 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   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick           BunifuCircleProgressbar1.Value = 100 = Conversions.ToString(ListBox1.Items.Count)         Label9.Text = Conversions.ToString(ListBox1.Items.Count)           If Not BunifuCircleProgressbar1.Value = BunifuCircleProgressbar1.Value = 100 Then             Try                   ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1                 TextBox1.Text = ListBox1.SelectedItem.ToString             Catch ex As Exception             End Try                   Try                   Dim scanbox As New TextBox                 Dim read As String = My.Computer.FileSystem.ReadAllText("viruslist.dat")                 BunifuCircleProgressbar1. 'делаем увелечение, прирост                 Label8.Text = Conversions.ToString(QR.ListBox2.Items.Count)                 Label2.Text = Conversions.ToString(BunifuCircleProgressbar1.Value)                 scanbox.Text = read.ToString                 Dim md5 As MD5CryptoServiceProvider = New MD5CryptoServiceProvider                 Dim f As FileStream = New FileStream(ListBox1.SelectedItem, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)                 f = New FileStream(ListBox1.SelectedItem, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)                 md5.ComputeHash(f)                 Dim hash As Byte() = md5.Hash                 Dim buff As StringBuilder = New StringBuilder                 Dim hashByte As Byte                 For Each hashByte In hash                     buff.Append(String.Format("{0:X2}", hashByte))                 Next                 If scanbox.Text.Contains(buff.ToString) Then                           QR.ListBox2.Items.Add(ListBox1.SelectedItem)                 End If             Catch ex As Exception             End Try         Else             Timer1.Stop()             MsgBox("Сканирование завершено.")             Label9.Text = "0"             Label8.Text = "0"             Label2.Text = "0"             TextBox1.Clear()             BunifuCircleProgressbar1.Value = 0                   End If     End Sub

  1. Вроде тривиальная задача поставила меня в тупик. Нужно в процессе работы программы изменять PictureBox.image Суть в том, что есть картинки которые лежат в My.Resources и надо в зависимости параметров цеплять соответствующую картинку. Если делать это применительно к одному объекту, то нет проблем Me.PictureBox1=My.Resources.image_1 Но как сделать это для группы объектов?vb.net1 2 3 4 5 For i As Integer =1 To 50     With Me.Controls("PictureBox" & i)          .image = My.Resources.image_1     End With NextПробовал так - не сработало Ругается что свойство image не является членом controls.vb.net1 2 3 4 5 For Each Pic As Control In Me.Controls      If TypeOf Pic Is PictureBox Then          Pic.image = My.Resources.image_1      End If NextТак тоже не хочет работать. Может кто подсказать как это сделать?Добавлено через 1 час 53 минуты Все, разобрался. Можно закрывать тему.

  1. Вот код контрола:vb.net1 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 Partial Public Class Canvas     Inherits UserControl #Region "Переменные"     Private m_BitmapImage As Bitmap     Private m_BackColor As Color #End Region #Region "Свойства"     Public Property BitmapImage() As Bitmap         Get             Return m_BitmapImage         End Get         Set(ByVal value As Bitmap)             m_BitmapImage = value         End Set     End Property     Public Overrides Property BackColor() As Color         Get             Return m_BackColor         End Get         Set(ByVal value As Color)             m_BackColor = value             Me.Invalidate()         End Set     End Property #End Region #Region "Конструктор"     Public Sub New()         InitializeComponent()         BitmapImage = New Bitmap(Me.Width, Me.Height)     End Sub #End Region     Private Sub PaintCanvas_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load         Clear()     End Sub     Public Sub Clear()         Dim br As New SolidBrush(Me.BackColor)         Using g As Graphics = Graphics.FromImage(BitmapImage)             g.FillRectangle(br, New Rectangle(Me.Location, Me.Size))         End Using         Me.Invalidate()     End Sub     Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)         MyBase.OnPaint(e)         e.Graphics.DrawImage(Me.BitmapImage, 0, 0)     End Sub     Public Sub Line(ByVal aPen As Pen, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)         Using g As Graphics = Graphics.FromImage(BitmapImage)             g.DrawLine(aPen, x1, y1, x2, y2)             Me.Invalidate()         End Using     End Sub End Classвот код тестовой формы:vb.net1 2 3 4 5 6 7 8 9 10 11 12 Public Class Form1     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim pen As New Pen(Color.Red, 10)         Canvas1.Line(pen, 20, 30, 250, 400)     End Sub     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click         Canvas1.Clear()     End Sub     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click         Canvas1.BackColor = Color.Green     End Sub End ClassВ дизайнере устанавливаю цвет фона контрола ( BackColor) , всё ОК. Запускаю проект с контролом - цвет куда то исчезает.

  1. Всем здравствуйте. При нажатии и удержании одной из кнопок со стрелками элемента управления NumericUpDown скорость смены значений в окне увеличивается. То же происходит и при работе с клавиатурой: если нажать и держать клавишу нажатой, то через какое-то время частота "нажатий" возрастает. Пусть есть кнопка на форме, при клике на которой происходит какое-то отображаемое на форме событие. Пользователь нажал кнопку мышкой и не отпускает. Событие должно повторятся сначала раз в секунду, а если он её не отпустит ещё пару секунд, то частота повторения событий должна увеличится втрое. На VB-6 это выглядело так:

  1. День добрый, уважаемые коллеги! Возник вопрос, как добавить многострочную переменную в свой элемент управления? структура vb.net1 2 3 4 5 6 7 8 9  Public Property Text As String         Get             Return T         End Get         Set(value As String)             T = value             Refresh()         End Set     End Propertyдаёт работать лишь с одной строкой текста, как этот параметр реализован в Textbox или Lable? Необходимо что бы была возможность вводить несколько строк текста...Добавлено через 2 часа 2 минуты Нашёл нечто близкоеvb.net1 2 3 4 5 6 7 8 9     Public Property Text As String()         Get             Return T         End Get         Set(value As String())             T = value             Refresh()         End Set     End Propertyи использование черезvb.net1 dim a as string = Join(Control1.Text, vbCrLf)но получается вид ввода текста как в listbox, combobox и подобные...

  1. Всем доброго времени суток! Хочу реализовать в выпадающем списке ComboBox'а поиск по любой части слова, а не только с начала. Столкнулся с такой проблемой: Есть источник со списком слов, Например: Седина-Кузнечная 1 Садовая-Кудринская 2 Садовая-Кудринская 3 Декабристов 36 Ленинградский 7 Вводим в ComboBox одну или несколько букв, к примеру букву "д". В выпадающем списке должны появится слова, в которых есть эта буква.Сам код поиска я уже написал (самый простой вариант, не суть):vb.net1 2 3 4 5 6     Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged         ListBox1.Items.Clear() 'список с результатами         For Each t As String In ListBox2.Items 'список - источник             If t.ToLower.Contains(ComboBox1.Text.ToLower) Then ListBox1.Items.Add(t)         Next     End SubВопрос - как сделать так: (либо как запихнуть результат в имеющийся ComboBox или как сделать свой?)

  1. Есть свойство в пользовательском контроле, которое пользователь не должен использовать. Но в то же время это свойство активно используется при программировании самого контрола. Например, свойство Text контрола, предназначенного только для ввода чисел, теряет смысл и заменяется свойством Value, но если ввести в код контрола следующие строкиvb.net1 2 3 4 5 6 7 8 9    Private Shadows m_Text As String     Public Shadows Property Text() As String         Get             Return m_Text         End Get         Set(ByVal value As String)             m_Text = value         End Set     End Propertyто свойство Text не только исчезнет из списка доступных свойств контрола (этого я и добиваюсь), но не будет работать код контрола в тех местах, где свойство Text использовалось для задания поведения контрола ( а это недопустимо). То есть видеть и менять это свойство пользователь не должен, но участие свойства во внутреннем коде контрола необходимо. Как быть?

  1. Всем доброе время суток. Есть программа радио онлайн делал давно и давно не слушал вот решил недавно послушать. Но некоторые (URL) станций уже не работают. Вытаскивал их с помощью инструментов разработчика в браузере. А постоянно за лазить в программу нет желания. Так вот вопрос как сделать playlist (информацию не нашол в интернете)? Вот кусок кода:vb.net1 2 3 4 5 6 7 8 9 10     Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged         If ComboBox1.Text = "Дорожное радио" Then Me.Label1.Text = "http://dor64no.streamr.ru/"         If ComboBox1.Text = "Русское радио" Then Me.Label1.Text = "http://rr.fmtuner.ru/"         If ComboBox1.Text = "Наше радио" Then Me.Label1.Text = "http://nashe1.hostingradio.ru:80/nashe-128.mp3"         'И так далее---->78 URL     End Sub       Private Sub Play1_MouseDown(sender As Object, e As MouseEventArgs) Handles Play1.MouseDown         AxWindowsMediaPlayer1.URL = Label1.Text     End Sub

  1. Вот прописал код на синус но он не пашет( Читал что нужно радианы в градусы перевести и нужна какая-то формула так вот не пойму какая именно формула и как его оформить чтобы оно работало(? Смотрим скрины

  1. Доброго времени суток камрады... Родилась идейка сделать и использовать Элемент управления чекбокс в стиле Switch Button... В принципе всё что хотел сделать - сделал... Единственное хотелось бы , что бы этот элемент распознавался как чекбокс.. ну типа Switch.Checked = True ну или False.... Подскажите как возможно такое дело оформить... Использую как UserControlhttp://www.cyberforum.ru/attachment....1&d=1456059849