Silverlight OpenFileDialog открывается во второй раз - PullRequest
0 голосов
/ 06 мая 2009

Я использую openFileDialog в sliverlight 2.0 с vb.net в конце. Я подключил его, и он работает так, как и предполагалось, за исключением того, что событие click, кажется, срабатывает дважды. Он срабатывает в первый раз, я выбираю файлы и нажимаю ОК. это делает обработку. Но как только я нажимаю кнопку ОК, событие щелчка запускается второй раз, и снова появляется диалоговое окно. это не то, что я хочу, и я не уверен, что я делаю неправильно, что это происходит во второй раз. Вот код ... надеюсь, кто-то увидит, что я делаю неправильно.

<Button x:Name="bOpenFileDialog" Content="2. Import CSV"
             Height="30" Width="200" Margin="0,96,0,0"
             HorizontalAlignment="Left" VerticalAlignment="Top" 
             Click="bOpenFileDialog_Click" />
    <TextBlock Height="19" Margin="246,26,261,0" VerticalAlignment="Top" Text="TextBlock" TextWrapping="Wrap" x:Name="lblMsg"/>

 Private Sub bOpenFileDialog_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles bOpenFileDialog.Click
    Me.bOpenFileDialog.IsEnabled = False
    ' Create an instance of the open file dialog box.
    Dim openFileDialog1 As OpenFileDialog = New OpenFileDialog


    ' Set filter options and filter index.
    openFileDialog1.Filter = "LOG Files (*.log)|*.log|All Files (*.*)|*.*"
    openFileDialog1.FilterIndex = 1

    openFileDialog1.Multiselect = True

    ' Call the ShowDialog method to show the dialogbox.
    Dim UserClickedOK As Boolean = CBool(openFileDialog1.ShowDialog)

    ' Process input if the user clicked OK.
    If (UserClickedOK = True) Then
        Dim rows As Integer = openFileDialog1.Files.Count - 1
        ReDim aryIISLogs(rows)

        For i As Integer = 0 To openFileDialog1.Files.Count - 1
            aryIISLogs(i) = openFileDialog1.Files(i).Name
        Next
        Process1File()
    End If
End Sub

Спасибо Shannon

1 Ответ

0 голосов
/ 06 мая 2009

Я думаю, это потому, что вы регистрируете событие дважды: оно есть в определении кнопки:

Click="bOpenFileDialog_Click" 

и в определении метода:

Private Sub bOpenFileDialog_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles bOpenFileDialog.Click

Каждый из этих событий запускает событие, поэтому у вас есть два всплывающих окна. Если вы удалите «Click =» или «handles», событие будет запущено только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...