2011-11-14 58 views
2

我有循環來創建一個按鈕的列,現在我希望實現到所有按鈕的事件處理程序,但不工作。無法執行RoutedEventHandler

迭代來創建按鈕的一列

For e As Integer = 0 To 19 
       btnFriday(e) = New Button() 
       btnFriday(e).Height = 23 
       btnFriday(e).Width = 150 
       btnFriday(e).SetValue(Grid.ColumnProperty, 9) 
       btnFriday(e).SetValue(Grid.RowProperty, e + 1) 
       btnFriday(e).Click += New RoutedEventHandler(AddressOf btnBookSlot_Click) 
       LayoutRoot.Children.Add(btnFriday(e)) 
    Next 

我希望這樣做時被點擊btnFriday 1然後執行以下的事件是打開一個稱爲Bookslot

Private Sub btnBookSlot_Click(sender As Object, e As RoutedEventArgs) 
    Dim btn As Button = DirectCast(sender, Button) 
    Dim bookSlot As New BookSlot() 
    bookSlot.show() 

End Sub 
childwindow像

我收到類似

的錯誤

公共事件點擊(發件人爲對象, ystem.Windows.RoutedEventArgs)'是一個事件,不能直接調用 。使用'RaiseEvent'語句來引發事件

大多數解決方案都是使用Silverlight的C#構建的,它們似乎工作得很好。雖然我有Silverlight使用VB.NET的問題任何想法?

回答

1

我相信所有你需要改變的是:

btnFriday(e).Click += New RoutedEventHandler(AddressOf btnBookSlot_Click) 

要:

AddHandler btnFriday(e).Click, AddressOf btnBookSlot_Click 
+0

大大工作。多謝。 –