www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheC#-Forum

Adler

Gepostet:
03.01.2005 18:06

KeyDown. Warum feuerts nicht bei vk_up usw ab?  
Hallo.

Ich versuche die Tastendrücke (incl. wiederholungen. also bei lange a drückern mehrere a's) abzufangen.
aber bei vk_up und so weiter ruft er die Methode OnKeyDown net auf.
Was kann ich dagegen machen? :-/
Ist doch scheisse.
Zum Seitenanfang Homepage      
 
Jammni

Gepostet:
06.01.2005 16:25

   
also eigentlich müsste das funktionieren. mit e.KeyCode == Keys.Up kannst du die Gleichheit überprüfen...

Falls es denn wirklich nicht geht, kannst du ja mal nen Code-Auszug posten...
Zum Seitenanfang Homepage   ICQ    
 
Adler

Gepostet:
06.01.2005 17:55

   
Also, ich habs schon öfter probiert, es ist nichtmal ne reagtion da.
Wenigstens müsste das Event doch ausgeführt werden?


row wird nicht hochgesetzt.
<pre>

protected void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
row++;
}


if (e.KeyCode == Keys.ShiftKey)
{
shiftdown = true;
}
if (e.KeyCode == Keys.Space)
{
int endof = (lines[row] as Line).text.Length;
(lines[row] as Line).text = (lines[row] as Line).text.Substring(0, col) + " " + (lines[row] as Line).text.Substring(col, endof - col);
changedlines.Add(new intdefiner(row));
col++;
Refresh();
}
if (e.KeyCode == Keys.Back)
{
if (col > 0)
{
int endof = (lines[row] as Line).text.Length;
(lines[row] as Line).text = (lines[row] as Line).text.Substring(0, col - 1) + (lines[row] as Line).text.Substring(col, endof - col);
changedlines.Add(new intdefiner(row));
col--;
}
else
{
col = (lines[row - 1] as Line).text.Length;
(lines[row - 1] as Line).text = (lines[row - 1] as Line).text + (lines[row] as Line).text;
row--;
rowcount--;
lines.Remove((lines[row + 1] as Line));
for (int i = row; i < rowcount; i++)
{
changedlines.Add(new intdefiner(i));
}
}
Refresh();
}

if (e.KeyData == Keys.Enter)
{
InsertLine((lines[row] as Line).text.Substring(col, (lines[row] as Line).text.Length - col), row+1);
(lines[row] as Line).text = (lines[row] as Line).text.Substring(0, col);
row++;
col = 0;
changedlines.Add(new intdefiner(row));
Refresh();
}


if (e.KeyValue >= 65 && e.KeyValue <= 90)
{
int keysize = 0;

string sbuchstabe = Convert.ToString((char)(e.KeyValue + keysize));
if (shiftdown == false)
{
sbuchstabe = sbuchstabe.ToLower();
}
int endof = (lines[row] as Line).text.Length;
(lines[row] as Line).text = (lines[row] as Line).text.Substring(0, col) + sbuchstabe + (lines[row] as Line).text.Substring(col, endof - col);
col++;
Refresh();
}
}

Zum Seitenanfang Homepage