Nicomendox Ответов: 3

Почему этот код не работает в событий button_click ?


Проблема-это Label14.Текст не меняется, когда я пытаюсь позвонить в кодовую строку.

Label14.Text = "Test Result Of ListBox Containers"


если я использую этот код в другом щелчке кнопки, он работает. но когда я использую в строках под кодом, это досент работает. в чем же проблема ?

Продвинутая Благодарность.

Что я уже пробовал:

Public Sub Listfolders(ByVal Pad As String)

        Dim DirInfo As New IO.DirectoryInfo(Pad)
        Dim DirInfo1 As New IO.FileInfo(Pad)
        Dim FileObject As IO.FileSystemInfo
        Dim strBESTAND As String

        For Each FileObject In DirInfo.GetFileSystemInfos

            If FileObject.Attributes = IO.FileAttributes.Directory Then
                ''Fileobject is Folder
                Listfolders(FileObject.FullName)
                Me.ListBox1.Items.Add(FileObject.Name)
            Else
                'Fileobject is file
                strBESTAND = (FileObject.FullName)
                Dim information = My.Computer.FileSystem.GetFileInfo(strBESTAND)
                strBESTAND = information.FullName
                Me.ListBox1.Items.Add(FileObject.Name)
                Me.ListBox2.Items.Add(FileObject.FullName)

            End If
        Next
    End Sub


Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click

        ListBox1.Items.Add(Label1.Text)

        Dim di As DirectoryInfo = New DirectoryInfo(Label1.Text) '=C:\!TestFolder
        Try

            If di.Exists Then
                'Listfolders(Me.Label1.Text)
                ListBox1.Text = "Deze mappen zijn gevonden in" & Label1.Text
                Return
            End If
        Catch ex As Exception
            MessageBox.Show("The process failed: {0}", e.ToString())
        End Try

        Label14.Text = "Test Result Of ListBox Containers"

    End Sub

Dylvh

Просто проверьте свой улов, у вас есть MessageBox.Show("процесс не удался: {0}", e*.ToString()) <- e-Это ваши EventArgs, разве это не должно быть ex.Метод toString()?

3 Ответов

Рейтинг:
21

Richard MacCutchan

If di.Exists Then
    'Listfolders(Me.Label1.Text)
    ListBox1.Text = "Deze mappen zijn gevonden in" & Label1.Text
    Return ' ---> Why Return here*
End If

* Этот оператор возврата гарантирует, что (предполагая, что вы вводите If блок) вы никогда не доберетесь до линии, которая меняется Label14.


Рейтинг:
2

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а затем удвоить его и напечатать ответ, то если бы вход / выход был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
Private Function Double(ByVal value As Integer) As Integer
    Return value * value
End Function

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку обработчика событий и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


Рейтинг:
2

Nicomendox

большое спасибо за Ваши советы. Я буду следить за вашими предложениями.


Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" нажмите кнопку под этим решением и опубликуйте свой ответ в виде комментария. НЕ разместите свой ответ в разделе "Добавить свой решение вот" шкатулка.