naja das mit den richtungen kann man sehen wie man will ich weiss ja nicht wies beim iPhone ist da ich noch nie eins in der Hand hatte, aber beim LG "iPhone" ist es so das wenn du es nach oben schiebst dann scrollt es nach unten was ich auch logischer finde
Man kann im Programm ja sehr einfach das einstellen was einem gefällt
P.S. du hast noch die if(count > 0) abfrage entfernt welche ich noch sehr gut finde da es ansonsten jedesmal wenn du sehr langsam oder wenig scrollst noch eine Zahl weiter springt.
hmm wieso?
du drückst ja dann scrollst du und dann lässt du wieder los, das ist doch die zeit die benötigt wird. Man kann es ja vom gesammten scrollvorgang nehmen da ja das 'nachscrollen' erst danach kommt und vom gesammten abhängig ist
naja sobald du langsamer wirst wird ja die zahl kleiner und es scrollt nicht mehr soweit also genau das was ich möchte
nehmen wir an die differenz der Y-positionen ist 100 und du brauchts eine zeit von 5 dann ergibt das 20 wenn du nun für die gleiche differenz eine Zeit von 50 benötigst da du noch am lesen bist dann ergibt dies nur noch 2 (dies sind nur Beispielwerte)
naja mein Problem ist höchstens das ich nicht genau weiss wie ich das programmieren kann xD
ich finde dies eine coole idee jetzt müsste man doch einfach noch diese Zahl vom Timer dynamisch machen also z.B. die Differenz der Y-positionen wenn Rechte Maustaste gedrückt wird und wenn sie losgelassen wird und das dann teilen durch die Zeit in welcher das gemacht wurde und dann noch einen angemessenen Multiplikator finden.
kann mir da jemand weiterhelfen wie man das machen würde?
ist dies überhaupt möglich da er ja die zahl ausrechnen muss gleich nachdem die rechte Maustaste losgelassen wird aber diese ausgerechnete Zahl auch gleich zu diesem Zeitpunkt benötigt?
also ist es die einzige möglichkeit über diese Hooks?
da dieses Thema ja schon etwas kompliziert ist und offensichtlich nicht so einfach geht wie es auf dieser Seite aussieht
ja von diesen Hooks habe ich auch schon gelesen ich dachte (hoffte) aber dass es auch die möglichkeit mit KeyDown bzw PreviewKeyDown gibt da ich keine Ahnung von Hooks habe.
ist es möglich die Tastenkombination Alt+Tab zu blockieren?
ich habe gelesen dass es einzig für Ctrl+Alt+Del nicht funktioniert.
Nun kriege ich es aber nicht hin das Alt+Tab geblockt wird und möchte nun wissen ob es überhaupt möglich ist, da ich nicht sehr viel brauchbares darüber gefunden habe.
WOW danke viel mals irgendwie hab ich es nun doch hingekriegt mit hilfe deines Tipps
ich weiss zwar nicht so genau wieso es nun funktioniert aber es geht
ich habe es nun so gelöst:
InitializeComponent();
reg(this);
void reg(Control control)
{
foreach (Control ctrl in control.Controls)
{
ctrl.PreviewKeyDown += new PreviewKeyDownEventHandler(MainFormPreviewKeyDown);
reg(ctrl);
}
}
hmmmm ok
und wo genau muss das erfolgen?
ich habe eine MainForm.Designer.cs in der steht
this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.MainFormPreviewKeyDown);
muss ich das jetzt umändern und woanders hin verschieben?
und in der MainForm.cs is eben der andere Code
und der muss ja dann wohl auch geändert werden oder?
stimmt mit der e.Hanled = true sollte es eigentlich funktionieren.
Das Problem ist jedoch das wenn ich die Enter Taste drücke geht er gar nicht in die MainFormKeyDown Funktion sondern "drückt" sogleich auf den z.z. aktiven Button somit habe ich keine Möglichkeit die e.Handled aufzurufen da er gar nicht erst in die Funktion hineingeht. ich habe die anderen Tasten ausprobiert und es ist nur die Enter Taste welche nicht funktioniert.
Gibt es evt. eine andere Funktion welche aufgerufen wird wenn die Enter Taste gedrückt wird?
Ist es möglich im KeyDown Event (oder ein ähnlicher) wenn ein Button aktiv ist die Enter taste so abzufangen das sie nicht den Button auslöst?
Mit jeder anderen Taste funktioniert dies auch nur die Enter-Taste läst sich nicht "Manipulieren"
so ich Poste mal meinen Programm code damit ihr das mal anschauen könnt und vielleicht den Fehler entdeckt.
das einzige was im zZ nicht geht ist der letzte Befehl mit dem Enter:
gibt es denn hier niemanden der das schon mal gemacht hat mit der Enter-Taste? Jede andere Taste funktioniert nur die Enter-Taste lässt sich nicht aufhalten und drückt einfach den Button der zuletzt angewählt wurde.
Es sollte aber wenn die Enter-Taste gedrückt wird zuerst ein Button angewählt werden und dieser dann gedrückt werden.
ja da ich ja die neuen Funktionen nicht selbst schreibe sondern sie mir generieren lasse indem ich im Design Fenster alles einstelle und für die Ereignisse einfach einen Doppelklick mache.
edit: ich habe noch einiges ausgetestet mit KeyPress und KeyDown jedoch ist KeyPress noch etwas schlechter als KeyDown da dort nicht alle Tasten funktionieren, bei KeyDown ist es nur die Enter-Taste welche nicht funktioniert.
der Event ist ja schon registriert (geht ja alles automatisch)
ich denke eher das man die Enter Taste abfangen muss bevor sie den zuletzt ausgewählen Button in der Form drückt. Ich habe jedoch schon so viele Dinge probiert wie ich diese abfangen kann (z.B. mit e.Handled=true; oder e.SuppressKeyPress = true das hat jedoch alles nicht funktioniert und ich weiss nun auch nicht mehr weiter.
gibt es bei der PreviewKeyDown auch irgendwas das ich aktivieren muss?
bei KeyDown musste ich ja KeyPreview = true setzen.
ich habe die Funktion ausgetestet mit einem Test-Programm jedoch wird diese Funktion
gar nie aufgerufen egal welche Taste ich drücke es geht nur in die KeyDown Funktion aber nie in die PreviewKeyDown.
das hab ich wohl ganz übersehen als ich das ganze geändert habe
nun ja jetzt funktioniert zwar das compilieren aber die tastatureingabe welche mit dem KeyDown funktioniert hatte (bis auf die Enter-Taste) funktioniert nun mit PreviewKeyDown nicht mehr.
entweder geht das gar nicht oder dann verstehe ich nicht worauf du hinaus willst mit dem PreviewKeyDown
No overload for 'MainFormPreviewKeyDown' matches delegate 'System.Windows.Forms.PreviewKeyDownEventHandler' (CS0123) - "pfad"\\Projects\TR\MainForm.Designer.cs:354,27
so sieht die Fehlermeldung aus wenn ich das ändere
danke für die Hilfe, jedoch verstehe ich noch nicht ganz was mir das bringt.
Ich weiss das dieses PreviewKeyDown vor dem KeyDown ausgeführt wird aber was bringt mir das letztendlich?
wenn ich nun die KeyDown funktion in eine PreviewKeyDown funktion ändere dann lässt sich das ganze nicht mehr kompilieren
ich möchte das er auf tastendruck einen Button auswählt und diesen drückt dies funktioniert auch sehr gut jedoch sobald ich dies mit der Enter Taste machen möchte funktioniert dies nicht mehr also er führt button18.Select(); nicht aus sondern drückt den Button der gerade angewählt ist