Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδιά!

 

Δοκίμασα να φτιάξω ένα δικό μου κουμπί στη visual basic και εν μέρη τα κατάφερα με τη βοήθεια ενός video.

 

Το πρόβλημα μου είναι ότι όταν φορτώνω εξ αρχή τη φόρμα και το κουμπί το έχω enable=false παίζει μια χαρά... ενώ αν κατα τη διάρκεια λειτουργίας του προγράμματος το κάνω από enable = true σε enable = false μέσω κάποιας διαδικασίας τότε... ναι μεν γίνεται disable το κουμπί αλλά συνεχίζει να μου δίχνει ακριβώς το ίδιο κουμπί και μου μαυρίζει το κείμενο του... και δεν μου αλλάζει την εικόνα του κουμπιού

 

ξέρει κανείς μήπως τι μπορεί να φταίει

 

ο κώδικας του κουμπιού

Public Class next_button
    Inherits Windows.Forms.Button

    Public Sub New()
        Me.Size = New System.Drawing.Point(100, 25)
        Me.FlatStyle = Windows.Forms.FlatStyle.Flat
        Me.BackgroundImage = My.Resources.Forward_Arrow
        Me.BackgroundImageLayout = Windows.Forms.ImageLayout.Stretch
        Me.BackColor = Drawing.Color.Transparent
        Me.Font = New System.Drawing.Font("Tahoma", 9.01, Drawing.FontStyle.Regular, Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.ForeColor = Drawing.Color.White
        Me.FlatAppearance.BorderColor = Drawing.Color.Gray
        Me.FlatAppearance.MouseDownBackColor = Drawing.Color.Transparent
        Me.FlatAppearance.MouseOverBackColor = Drawing.Color.Transparent
        Me.FlatAppearance.BorderSize = 0
    End Sub

    Private Sub next_button_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.EnabledChanged
        If Me.Enabled = False Then
            Me.BackgroundImage = My.Resources.Forward_Arrow_disable
        Else
            Me.BackgroundImage = My.Resources.Forward_Arrow
        End If
    End Sub

    Private Sub next_button_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        Me.BackgroundImage = My.Resources.Forward_Arrow_clicked
    End Sub


    Private Sub next_button_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseEnter
        Me.BackgroundImage = My.Resources.Forward_Arrow_hover
    End Sub

    Private Sub next_button_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
        Me.BackgroundImage = My.Resources.Forward_Arrow
    End Sub


    Private Sub next_button_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        Me.BackgroundImage = My.Resources.Forward_Arrow_hover
    End Sub
End Class
Δημοσ.

Θα μου επιτρέψεις να κανω μια παρέμβαση

 

 

Ποιος ο λόγος να σπαταλας τις ώρες σου σε τέτοιου είδους κώδικα

 

Κάνε κάτι πιο δημιουργικό

  • Like 1
Δημοσ.

Παιδιά βοηθάω ένα φιλαράκι μου που είναι σκράπας... αν ήταν να κάτσω να ασχοληθώ με visual studio... θα ασχολιόμουν με c# και όχι με basic... αλλά τι να κάνουμε...

αλλά ρε παιδιά καμιά βοήθεια;;;; :P

Δημοσ.

Παιδιά βοηθάω ένα φιλαράκι μου που είναι σκράπας... αν ήταν να κάτσω να ασχοληθώ με visual studio... θα ασχολιόμουν με c# και όχι με basic... αλλά τι να κάνουμε...

αλλά ρε παιδιά καμιά βοήθεια;;;; :P

 

Αφού εσύ δεν ξέρεις ούτε VB ούτε C#, τί διδάσκεις τον άλλον τότε; Για να τον στραβώσεις περισσότερο;

Γιατί με αυτό που έγραψες στο 1ο post, αυτό κάνεις.

Δημοσ.

Αλλαξε και τις 5 συναρτησεις με τις αντιστοιχες override 

Αν δεν φτιάξει τότε κατι κάνεις λάθος στον κώδικα στη φόρμα.

    Protected Overrides Sub OnEnabledChanged(ByVal e As System.EventArgs)
        MyBase.OnEnabledChanged(e)
        If Me.Enabled = False Then
            Me.BackgroundImage = My.Resources.Forward_Arrow_disable
        Else
            Me.BackgroundImage = My.Resources.Forward_Arrow
        End If
    End Sub

Edit

Το ιδιο ειναι , δειξε μας τον κώδικα στην φορμα που το χρησιμοποιεις.

Δημοσ.
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
        
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False
        RadioButton4.Checked = False
        questIndex = questIndex + 1 

        
        PictureBox1.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & ".jpg")
        PictureBox2.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 0).ToString & ".jpg")
        PictureBox3.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 1).ToString & ".jpg")
        PictureBox4.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 2).ToString & ".jpg")
        PictureBox5.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 3).ToString & ".jpg")

        question.Text = (questIndex + 1).ToString


        answer = questIndex 

        If questIndex = 1 Then
            btnPrev.Enabled = True
        End If
        If questIndex = 3 Then
            btnNext.Enabled = False
        End If
    End Sub

   Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click
       
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False
        RadioButton4.Checked = False
        questIndex = questIndex - 1 

        PictureBox1.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & ".jpg")
        PictureBox2.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 0).ToString & ".jpg")
        PictureBox3.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 1).ToString & ".jpg")
        PictureBox4.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 2).ToString & ".jpg")
        PictureBox5.Image = Image.FromFile(parent_folder & "\images\" & folder & "\" & questArray(questIndex) & "\" & questArray(questIndex) & "_" & ansArray(questIndex, 3).ToString & ".jpg")



        question.Text = (questIndex + 1).ToString

        answer = questIndex

        If questIndex = 0 Then
            btnPrev.Enabled = False
            btnNext.Enabled = True
        End If
        If questIndex = 2 Then
            btnNext.Enabled = True
        End If
    End Sub

Με τα κανονικά buttons της visual basic δουλεύει κανονικότατα

(σκεφτείτε ότι πριν τρέξω αυτά τα κουμπιά στο load τις φόρμας υπάρχει εντολή btnPrev.Enabled=false και μου δίχνει το κουμπί μια χαρα απενεργοποιημένο... όμως μόλις ξανααλλάξει σε false η τιμή τίποτα :D

Δημοσ.

Βαλε ένα checkBox στη φορμα και handle αυτο το event

 Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        btn_Next.Enabled = CheckBox1.Checked
    End Sub

Ειναι ΟΚ οταν τσεκάρεις/ ξετσεκαρεις το check? 

Γενικά αν ειναι ήδη το κουμπι enabled και γραψεις button.enabled=true ΔΕΝ κανει fire το event (το ιδιο και για false).

Γιαυτο κανε πανω απο 2-3 εναλλαγες στο checkbox

Δημοσ.

Βαλε ένα checkBox στη φορμα και handle αυτο το event

 Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        btn_Next.Enabled = CheckBox1.Checked
    End Sub

Ειναι ΟΚ οταν τσεκάρεις/ ξετσεκαρεις το check? 

Γενικά αν ειναι ήδη το κουμπι enabled και γραψεις button.enabled=true ΔΕΝ κανει fire το event (το ιδιο και για false).

Γιαυτο κανε πανω απο 2-3 εναλλαγες στο checkbox

Με το checkbox όντως δουλεύει...

αλλά και την τιμή του checkbox να πειράζο αντί για το enable... πάλι το ίδιο συμβαίνει πρέπει να κάνω κλικ με το ποντίκη για να δουλέψει

Δημοσ.

Με το checkbox όντως δουλεύει...

αλλά και την τιμή του checkbox να πειράζο αντί για το enable... πάλι το ίδιο συμβαίνει πρέπει να κάνω κλικ με το ποντίκη για να δουλέψει

 

 

Δλδ αν τσεκάρεις/ξετσεκαρεις μεσω κώδικα (και όχι με το ποντικι) δεν δουλευει? 

Δεν γινονται αυτά.

Πως "πειραζεις την τιμη του checkbox"?

 

Εχεις μπερδεψει λίγο την λογική του wizard, τις αρχικές καταστασεις κουμπιων και background images. Αν ειναι λαθος από το wizard λαθος θα ειναι και μεσω Λαμίας (checkbox).

Δημοσ.

μέσα σε κάποιο κουμπί έχω κατι τέτοιο

 

checkbox.checked = "false"

ή true αντίστοιχα...

πως μπορώ να το κάνω διαφορετικά;;;;

Δημοσ.

Βαλε breakpoint σαυτη τη γραμμη και κοιτα με debug αν τρέχει ποτε. Μετα πατα F11 πρεπει να σε παει στον κωδικα με το Enabled , πατα ξανα F11...

Δημοσ.

Ναι τρέχει... το θέμα δεν είναι ότι δεν το κάνει disable... είναι ότι δεν κάνει αισθητικά αυτό που πρέπει...

 

κοίτα παρακάτω η πρώτη φόρμα είναι disable μεσω του checkbox kai η τρίτη disable μέσω αλλαγής της τιμής του checkbox με κώδικα

 

image.jpg

Δημοσ.

Ναι τρέχει... το θέμα δεν είναι ότι δεν το κάνει disable... είναι ότι δεν κάνει αισθητικά αυτό που πρέπει...

 

κοίτα παρακάτω η πρώτη φόρμα είναι disable μεσω του checkbox kai η τρίτη disable μέσω αλλαγής της τιμής του checkbox με κώδικα

 

 

Δοκίμασε με αυτον τον κωδικα.

Προσθετεις ενα αλλο button και στο click του αλλαζεις το checkBox που με τη σειρα του αλλαζει το Enabled/Disabled

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        CheckBox1.Checked = Not CheckBox1.Checked
    End Sub

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...