Avatar billede thomaxz Nybegynder
30. oktober 2004 - 18:36 Der er 18 kommentarer og
1 løsning

if problem

Denen code vikker ikek, den er placeret i

Private Sub TextBox2KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)

If(e.KeyCode=13) Then
        stCmd=">"
        Cmd=textbox2.text
        textbox2.text=""
        setStCmd
ElseIf(e.KeyCode=8)
    Alen=textbox2.Text.Length-1
    Blen=stCmd.Length
             
                If Alen <= Blen Then
            setStCmd
    End If
End If


mens dene kode virker fint


If(e.KeyCode=13) Then
        stCmd=">"
        Cmd=textbox2.text
        textbox2.text=""
        setStCmd
ElseIf(e.KeyCode=8)
    Alen=textbox2.Text.Length-1
    Blen=stCmd.Length

                messagebox.Show(alen)
    messagebox.Show(blen)
             
                If Alen <= Blen Then
            setStCmd
    End If
End If


jeg forstår det ikke :S

nogle der kan hjælpde mig.
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:38 #1
altså din pointe er at hvis du indsætter to messageboxe så virker det ?
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 18:39 #2
Jep, men det er ikke meningen af bruger skal have nogle beskder der. :S
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:48 #3
hvad laver setStCmd ? kan du kort forklare hvad meningen er?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:51 #4
..altså meningen med din program stump
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 19:32 #5
setStCmd er en sub som ændre på textbox2.text

    Private Sub SetStCmd
            textbox2.Text=stCmd
            textbox2.SelectionStart=stCmd.Length
        End Sub

-Thomas
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 19:36 #6
hvilke variable er globale i klassen ?
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 19:37 #7
Public St As Boolean
        Public StCmd as string
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 19:42 #8
du skal så ha'
Public StCmd as string = ""

eller initialisere StCmd et sted for at undgå nullreference på:
Blen = StCmd.Length
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 19:48 #9
min kode ser sådan her ud nu


        Public St As Boolean
        Public StCmd as string =""
       
        Private Sub MainFormLoad(sender As System.Object, e As System.EventArgs)
            HentCmds
            Loader   
           
        End Sub
       
        Private Sub Loader
            Dim myReader As New IO.StreamReader("F:\Router\loader.txt")
            Dim lineRead As String = myReader.ReadToEnd
            Dim NyLine As String
            Dim NeLine As String
            'While lineRead <> Nothing
                nyline=lineRead.Replace("[version]","2500")
                neline=nyline.Replace("[configregister]","0x2200")
                textbox1.Text=textbox1.Text & neline
                textbox1.Text=textbox1.Text & Microsoft.VisualBasic.Constants.vbCrLf & Microsoft.VisualBasic.Constants.vbCrLf  & "Press Enter to get started"
                'lineRead = myReader.ReadLine
            'End While   
        End Sub
       
        Private Sub HentCmds
            Dim myReader As New IO.StreamReader("F:\Router\cmd.txt")
            Dim lineRead as string = myReader.ReadLine
            While lineRead <> Nothing
                listbox1.Items.add (lineRead)
                lineRead = myReader.ReadLine
            End While   
        End Sub
       
        Private Sub SetStCmd
            textbox2.Text=stCmd
            textbox2.SelectionStart=stCmd.Length
        End Sub
       
        Private Sub TextBox2TextChanged(sender As System.Object, e As System.EventArgs)
                       
        End Sub
       
        Private Sub TextBox2KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)
            'messagebox.Show(e.KeyCode)
            Dim Cmd As String
            Dim ALen As int16
            Dim BLen As int16
           
            If(e.KeyCode=13) Then
              If(st=False) Then
                    st=True
                    stCmd=">"
                    setStCmd
              ElseIf (st=True) Then
                    st=True
                    stCmd=">"
                    Cmd=textbox2.text
                    textbox2.text=""
                    setStCmd
              End If   
            ElseIf(e.KeyCode=8)
              Alen=textbox2.Text.Length-1
              Blen=stCmd.Length
                 
              If Alen <= Blen Then
                    setStCmd                   
              End If
            End If
        End Sub

men den virker stadig ikke?
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 19:51 #10
det meste af koden virker problemt ligger i at selv om Alen er 0 og Blen er 1 bliver

    If Alen <= Blen Then
                    setStCmd                   
              End If

setStCmd ikke kalde i den kode ovenfor!
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 19:55 #11
ok :o, jeg har desværre ikke helt forstået hvad ideen er (er det en slags hjemmelavet dos prompt agtig ting måske?!)

MEN: har du debugget dig gennem koden ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:12 #12
ok jeg kan se hvad du vil nu, du vil ikke ha' at tegnet ">" bliver slettet. og det undgår du ved at gøre dette:

If ALen <= BLen Then
  StCmd = StCmd & ">"
  SetStCmd()
  StCmd = StCmd.Substring(0, 1)
End If
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:15 #13
grunden til at den anden kode ikke virkede var, at textboxen havde fået en besked om at den skulle slette et tegn, hvilket blev gjort efter at du indsatte det. Så du indsatte :
textbox2.Text = ">", hvorefter tegnet blev slettet så
textbox2.Text = "";

det fixed overnfor går, er at indsætte:
textbox2.Text = ">>", og når det sidste tegn slettes står der:
textbox2.Text = ">"
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:16 #14
så den kom faktisk ok ind i if sætningen med If ALen <= BLen Then ...
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 20:21 #15
Tak, hvis du vil have point så opre lige et svar.

men har du en måde, hvorpå man kan deaktivere et tegn. fkesi vb6 brugte man keycode=0 til anullere et tasttryk, men hvordan gøres det i vb.net??
Avatar billede thomaxz Nybegynder
30. oktober 2004 - 20:22 #16
og evt. hvordan man sætter forcus på et objekt?

mvh.
Thomas Christensen
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:22 #17
prøv med e.Handled = true, men jeg har aldrig brugt det før.
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:23 #18
altså inde i textbox2_keydown eventen... det er muligt det skal gøres i en anden event
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:23 #19
fokus: mener det er textbox2.SetFocus()
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester