Verder gaan met de ENTER toets

Status
Niet open voor verdere reacties.

gast0514

Gebruiker
Lid geworden
8 okt 2007
Berichten
43
Goedemorgen,

[edit]

Bij deze mijn eerste probleem:

Bij het invoeren van plaatgegevens wil ik ervoor zorgen dat je na het indrukken van de ENTER toets naar de volgende textbox gaat.
Nou heb ik de volgende stukken code al gevonden, maar hiermee wil het niet werken:


private void General_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
}


En:


private void Form14_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
if (! e.Control) {
this.SelectNextControl(this.ActiveControl, ! e.Shift, true, true, true);
}
}

Deze code heb ik in het betreffende Form onder

public Form14()
{
InitializeComponent();

}

geplaatst en ook ‘achter’ de betreffende textbox. In het eerste geval gebeurd er helemaal niks, en in het tweede geval krijg ik de error ‘No overload for txtGeheim_TextChanged’ matches delegate ‘System.EventHandler’.
(txtGeheim is de naam van mijn textbox).

Wat doe ik fout? Klopt de code niet of gebruik ik hem niet goed?
Ik hoop dat iemand me kan/wil helpen!

Mvg,
 
Laatst bewerkt:
Code:
private void General_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
}

Deze code klopt gewoon.
Ik heb deze uitgeprobeert en hij werkt goed op een progje die ik zelf net aan het maken was waar ook een aantal textboxes in zitten.

Kijk eens na of de tabindex goed staat ingesteld.

Tabindex kan je handmatig instellen dmv de volgende code:
Code:
txtbox.TabIndex = 0;
txtbox2.TabIndex = 1;
de tabindex begint dus altijd bij 0.
Als hij je het instelt dat je de volgende tabindices gebruikt 0, 1, 3, 4 dan gaat hij automatisch als hij bij 1 is naar 3 en hoef je niet 2e op tab te klikken.

Welk programma gebruik je om in te coden?
 
Laatst bewerkt:
Bedankt voor je snelle reactie killermenace!

De tabindex staat goed, en het programma dat ik gebruik is Visual C# 2005 Express Edition.

Ik heb even een form gemaakt met 2 textboxen (complete code zie hieronder). Wanneer ik op enter druk zegt mn computer alleen 'ping' en verder gebeurt er niks.

Code:
namespace PlatenMagazijnBeheer
{
    public partial class Form15 : Form
    {
        public Form15()
        {
            InitializeComponent();
        }

        private void General_KeyDown(object sender,
        System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                SendKeys.Send("{TAB}");
            }
        }
        
        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

    }
}

Mvg Remy
 
Heb je de functie General_KeyDown wel in de eventlist onder KeyDown van de textboxes gezet?

In de bijlage de mijne gezet.
Deze reageert op een 'enter' in beide textboxes
 

Bijlagen

Laatst bewerkt:
Heb je de functie General_KeyDown wel in de eventlist onder KeyDown van de textboxes gezet?

Dat was het probleem!
Dan ga ik nu kijken of ik i.p.v. naar de volgende textbox gaan ook een OK-button kan activeren, maar dat zal wel lukken!

Bedankt voor de hulp!!
 
Dat is opzich niet zo moeilijk om te doen.

Je hebt de .Click-event van de Ok-knop waar je een aantal dingen in zet welke uitgevoerd moeten worden. Nu doe zet je al deze niet meteen in de .Click-functie maar in een eigen functie bijvoorbeeld private void okButtonExecute(){}
Die functie kan je dan ook aanroepen binnen de .KeyDown event van de textboxes.
 
ik heb de code die we al hadden een klein beetje aangepast, i.p.v.:

Code:
            if (e.KeyCode == Keys.Enter)
            {
                SendKeys.Send("{TAB}");
            }
heb ik gebruikt:
Code:
            if (e.KeyCode == Keys.Enter)
            {
                SendKeys.Send("{TAB}+{ENTER}");
            }

Dus eigenlijk selecteert ie eerst de Button, en dan 'klikt' ie op ENTER

Dan had ik nog een (vrij eenvoudige) vraag, deze zal ik even als een nieuw onderwerp posten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan