vraag om bevestiging bij het aanvinken van een vakje

ik heb op dit moment een formulier dat meerdere selectievakjes bevat, zodra alle vakjes zijn aangevinkt of leeg zijn gelaten, stuurt het dit naar de database de staat van de selectievakjes ik wil toevoegen, als een vakje niet is aangevinkt, als je het aanvinkt, zou het om een ​​bevestigingsvenster moeten vragen: "Weet je zeker dat je dit wilt controleren" om het even welke hulp alstublieft?

dit is de huidige code

            public IMeditor(IMui IMui, IMuser U, string User)
    {
        InitializeComponent();
        this.IMui = IMui;
        imu = U;
        if (imu.UID == 0)
        {
            Add.Text = "Add";
            imu.name = user;
        }
        else
            Add.Text = "Update";
        AuthChat.Checked = imu.AuthChat == 1;
        AuthTac1.Checked = imu.AuthTac1 == 1;
        AuthTac2.Checked = imu.AuthTac2 == 1;
        AuthTac3.Checked = imu.AuthTac3 == 1;
        AuthTac4.Checked = imu.AuthTac4 == 1;
        AuthTac5.Checked = imu.AuthTac5 == 1;
        AuthTac6.Checked = imu.AuthTac6 == 1;
        AuthTac7.Checked = imu.AuthTac7 == 1;
        AuthTac8.Checked = imu.AuthTac8 == 1;
        AuthTac9.Checked = imu.AuthTac9 == 1;
        AuthTac10.Checked = imu.AuthTac10 == 1;

        switch (imu.Transport.ToLower()) {
            case "aim":   Transport.SelectedIndex = 0; break;
            case "gtalk": Transport.SelectedIndex = 1; break;
            case "msn":   Transport.SelectedIndex = 2; break;
            case "yahoo": Transport.SelectedIndex = 3; break;
        }
    }
1
Weet je zeker dat je je gebruikers zoveel wilt lastigvallen? Als u normaal op een vakje klikt, tikt of verwijdert u gewoon het vakje - precies waar de gebruiker om heeft gevraagd.
toegevoegd de auteur sarnold, de bron
@sarnold is geen formulier dat een gebruiker invult, het is een formulier dat ik een gebruiker wil laten weten dat hij een vakje heeft aangevinkt (slechts op enkele) dat normaal niet moet worden gecontroleerd (alleen voor beheerders)
toegevoegd de auteur Izzy G, de bron

5 antwoord

Ik ben het met Izzy eens. Voeg iets toe als

    private void PrivateInitialize()
    {

        CheckBox chkBox = new CheckBox();
        chkBox.Text = "Click me";
        chkBox.CheckedChanged += new EventHandler(chkBox_CheckedChanged);
    }

    private void chkBox_CheckedChanged(object sender, EventArgs e)
    {
        MessageBox.Show("Nag, nag, nag!  You take out the trash yet?");
    }
2
toegevoegd

U moet het selectievakje CheckedChangedEvent voor het selectievakje gebruiken. U vindt de voorbeeldcode op MSDN . Ook

this link for the complete understanding of checkbox.

Of anders kunt u uw eigen klasse afleiden uit CheckBox-besturing van Windows-formulieren en vervolgens de vereiste functie overbruggen en uw eigen logica implementeren en alle selectievakjes in uw toepassing uit deze afgeleide klasse maken

1
toegevoegd
Het spijt me, ik ben een nieuweling, dus ik heb wat meer hulp nodig over hoe ik het moet doen, misschien kan iemand mijn code die ik gebruik aanpassen? of vertel me stap voor stap wat ik moet doen
toegevoegd de auteur Izzy G, de bron

doe het met javascript? add OnClientClick = "return confirmCheckCheck (this);"

<script language="javascript">
function confirmCheck(e){
 return confirm("are you sure?");
//do other stuff
}
</script>

dit zou beter moeten zijn dan mensen omleiden

1
toegevoegd
Dit zijn winforms die van toepassing zijn. Waar komt Javascript in beeld?
toegevoegd de auteur coolcake, de bron
Werkt Javascript in C# .NET Winforms-programmering?
toegevoegd de auteur sarnold, de bron
public IMeditor(IMui IMui, IMuser U, string User)
    {
        InitializeComponent();
        this.IMui = IMui;
        imu = U;
        if (imu.UID == 0)
        {
            Add.Text = "Add";
            imu.name = user;
        }
        else
            Add.Text = "Update";
        AuthChat.Checked = imu.AuthChat == 1;
        AuthTac1.Checked = imu.AuthTac1 == 1;
        AuthTac2.Checked = imu.AuthTac2 == 1;
        AuthTac3.Checked = imu.AuthTac3 == 1;
        AuthTac4.Checked = imu.AuthTac4 == 1;
        AuthTac5.Checked = imu.AuthTac5 == 1;
        AuthTac6.Checked = imu.AuthTac6 == 1;
        AuthTac7.Checked = imu.AuthTac7 == 1;
        AuthTac8.Checked = imu.AuthTac8 == 1;
        AuthTac9.Checked = imu.AuthTac9 == 1;
        AuthTac10.Checked = imu.AuthTac10 == 1;

        switch (imu.Transport.ToLower()) {
            case "aim":   Transport.SelectedIndex = 0; break;
            case "gtalk": Transport.SelectedIndex = 1; break;
            case "msn":   Transport.SelectedIndex = 2; break;
            case "yahoo": Transport.SelectedIndex = 3; break;
        }

         AuthChat.CheckedChanged += new EventHandler(CheckChangedHandler);
         AuthChat1.CheckedChanged += new EventHandler(CheckChangedHandler);

    }

 void CheckChangedHandler(Object obj, EventArgs args)
        {
            if (obj == AuthChat)
            {
                MessageBox.Show("Checked changed for AuthChat");
            }
            else if (obj == AuthChat1)
            {
                MessageBox.Show("Checked changed for AuthChat1");
            }
        }
0
toegevoegd
Ik heb het nieuwe antwoord geplaatst. Ik hoop dat het je helpt.
toegevoegd de auteur coolcake, de bron
het waarschuwt me nu, wat als ik het liever zou hebben als een Yes or No-box? dus het vraagt ​​je zeker dat je dit vakje aanvinkt, en het is alleen bij het checken .. als je het niet controleert, dan geef ik niet om een ​​berichtvenster
toegevoegd de auteur Izzy G, de bron
public IMeditor(IMui IMui, IMuser U, string User)
    {
        InitializeComponent();
        this.IMui = IMui;
        imu = U;
        if (imu.UID == 0)
        {
            Add.Text = "Add";
            imu.name = user;
        }
        else
            Add.Text = "Update";
        AuthChat.Checked = imu.AuthChat == 1;
        AuthTac1.Checked = imu.AuthTac1 == 1;
        AuthTac2.Checked = imu.AuthTac2 == 1;
        AuthTac3.Checked = imu.AuthTac3 == 1;
        AuthTac4.Checked = imu.AuthTac4 == 1;
        AuthTac5.Checked = imu.AuthTac5 == 1;
        AuthTac6.Checked = imu.AuthTac6 == 1;
        AuthTac7.Checked = imu.AuthTac7 == 1;
        AuthTac8.Checked = imu.AuthTac8 == 1;
        AuthTac9.Checked = imu.AuthTac9 == 1;
        AuthTac10.Checked = imu.AuthTac10 == 1;

        switch (imu.Transport.ToLower()) {
            case "aim":   Transport.SelectedIndex = 0; break;
            case "gtalk": Transport.SelectedIndex = 1; break;
            case "msn":   Transport.SelectedIndex = 2; break;
            case "yahoo": Transport.SelectedIndex = 3; break;
        }

         AuthChat.Click += new EventHandler(ClickHandler);


    }

 void ClickHandler(Object obj, EventArgs args)
        { 
if (obj == AuthChat && AuthChat.CheckState == CheckState.Checked)
            {
                DialogResult result = MessageBox.Show("Do you want to change?", "are you sure?", MessageBoxButtons.YesNo);        

                if (result == DialogResult.No)
                {
                    AuthChat.Checked = false;
                }
            }
        }
0
toegevoegd
werkte uitstekend, heel erg bedankt!
toegevoegd de auteur Izzy G, de bron