2016-04-14 35 views
0

ile her seferinde bir döngüde nasıl döngü yapılır Bu benim kodum şu ana kadar. Profesörüm, kod yazamayacağımı söyledi. Düğme tıklama olayının altındaki döngü ile bana yardımcı olabilir misiniz. Sağ flaş formu yüklemek ve metin dosyaları ilk terim ve tanım yukarı çekin ama yanındaki düğmeyi tıkladığınızda içinde okundu dosyanın yolunu gösterir olacaktır.Düğme

Public Class frmFlash 

    Private _intSizeOfArray As Integer = 3 
    Private _strLocationOfTerms(_intSizeOfArray) As String 
    Private _strLocationOfDefinitions(_intSizeOfArray) As String 
    Private _objReader As IO.StreamReader 
    Private _strTerms As String 

    Private Sub frmFlash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Dim objReader As IO.StreamReader 
     Dim strLocationOfTerms As String = "C:\Users\boone\Desktop\Terms.txt" 
     Dim strLocationOfDefinitions As String = "C:\Users\boone\Desktop\Definitions.txt" 
     Dim intTermArray(4) As Integer 
     Dim intCount As Integer 

     lblDefinition.Visible = False 

     If IO.File.Exists(strLocationOfTerms) Then 
      objReader = IO.File.OpenText(strLocationOfTerms)  
      _strTerms = objReader.ReadLine()  
      lblTerm.Text = _strTerms  
     End If 

     If IO.File.Exists(strLocationOfDefinitions) Then 
      objReader = IO.File.OpenText(strLocationOfDefinitions) 

      strLocationOfDefinitions = objReader.ReadLine() 

      objReader.Close() 
      lblDefinition.Text = strLocationOfDefinitions 
     End If 
    End Sub 

    Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click 
     Dim objReader(_intSizeOfArray) As IO.StreamReader 
     Dim intCount As Integer = 0 
     Dim strTermArray As String 
     Dim strLocationOfTerms As String = "C:\Users\boone\Desktop\Terms.txt" 
     Dim strLocationOfDefinitions As String = "C:\Users\boone\Desktop\Definitions.txt" 

     Do While intCount <= _intSizeOfArray 
      lblTerm.Text = strLocationOfTerms(_strTerms) 
      lblDefinition.Text = strLocationOfDefinitions 
      intCount += 1  
     Loop 
    End Sub 

    Private Sub btnDefinition_Click(sender As Object, e As EventArgs) Handles btnDefinition.Click 
     lblDefinition.Visible = True 
    End Sub 
End Class 

cevap

2

Çalıştığınız yana diziler, bunu yapmanın en kolay yolu, düğme işleyicisindeki işlemeyi tamamen atlamaktır. Dizilerinizi Load etkinliğine yükleyin ve onlar için sadece bir IEnumerator yakalayın.

'In Class level declarations 
Private _termsEnumerator As IEnumerator(Of String) 
Private _defsEnumerator As IEnumerator(Of String) 

Private Sub frmFlash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    'Your other initialization code... 
    '... 
    'Load your _strLocationOfTerms and _strLocationOfTerms here. 
    _termsEnumerator = _strLocationOfTerms.GetEnumerator() 
    _defsEnumerator = _strLocationOfDefinitions.GetEnumerator() 
End Sub 

Sonra dizilerinden sonraki öğeyi kapma kadar basit (onlar IEnumerable uygulamak):

Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click 
    If _termsEnumerator.MoveNext() And _defsEnumerator.MoveNext() Then 
     lblTerm.Text = _termsEnumerator.Current 
     lblDefinition.Text = _defsEnumerator.Current 
    End If 
End Sub