Когда я вставляю комбинированный список через код VB.NET, как сделать так, чтобы у него было событие? - PullRequest
1 голос
/ 13 февраля 2010

Привет, я все еще новичок в VB.NET ... У меня есть следующий код для формы, которая имеет кнопку (Button1). Когда я нажимаю эту кнопку, она добавляет комбинированный список с некоторыми значениями (он добавляет новый под каждым нажатием кнопки). Как настроить событие так, чтобы при изменении поля со списком справа от него появлялось текстовое поле? Я в основном смотрю на различные варианты поведения, основанные на том, что выбрано в каждом выпадающем списке.

Public Class frmEditor
    Private Const rowHeight = 25
    Dim datarows() As Action
    Dim currentrow As Integer
    Dim starttop As Integer
    Private Sub frmEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        currentrow = 1
        starttop = 20
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        CreateRow()
        currentrow = currentrow + 1
        starttop = starttop + rowHeight
    End Sub

    Private Sub CreateRow()
        Dim newrow As Action = New Action()
        ReDim Preserve datarows(currentrow)
        datarows(currentrow) = newrow
        datarows(currentrow).newAction(15, starttop, currentrow)
    End Sub

End Class

Public Class Action
    Private cbo As New ComboBox()

    Public Sub newAction(ByVal xleft As Integer, ByVal ytop As Integer, ByVal nrow As Integer)
        cbo.Top = ytop
        cbo.Left = xleft
        cbo.Visible = True
        cbo.Items.Add("Test1")
        cbo.Items.Add("Test2")
        frmEditor.Controls.Add(cbo)

    End Sub
End Class

1 Ответ

0 голосов
/ 13 февраля 2010

Вам нужно добавить обработчик

AddHandler cbo.newAction, AddressOf newAction

EDIT:

Вот пример чего-то, что я построил. Я хотел иметь возможность добавлять ряд ссылок внизу каждой страницы, не добавляя HTML-код на каждую страницу. Поэтому я построил контроль, чтобы сделать это для меня. Частично было добавить элемент управления LoginStatus

        Protected Overrides Sub CreateChildControls()
           Dim lb As New LoginStatus
           With lb
               .ID = "LoginStatus1"
               AddHandler .LoggingOut, AddressOf LoginStatus1_LoggingOut
           End With
           Me.Controls.Add(lb)
        End Sub

Тогда мой обработчик LoggingOut делает немного магии, чтобы не нарушать мою перезапись URL.

        Private Sub LoginStatus1_LoggingOut(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs)
        'sign out the logged in user
        End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...