Autor Beitrag
Basher
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 26.08.10 18:51 
Hallo,

ich hoffe ich bin jetzt im richtigen Thread. Und zwar habe ich ein kleines Programm, nun möchte ich eine Form mit der Taste F1 öffnen.

dachte mir, dass es vllt so geht...aber geht leider nicht :(

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
    if(Control.ModifierKeys == Keys.F1)
    {
         KeyPreview = true;
         HelpForm.Show();
    }
}

Also bei HelpForm.show kommt der Fehler.

Danke Basher
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 26.08.10 19:14 
user profile iconBasher hat folgendes geschrieben Zum zitierten Posting springen:
Also bei HelpForm.show kommt der Fehler.
Also erstens wundert es mich, dass das überhaupt geht, denn als ModifierKeys hätte ich jetzt Strg, Shift und Alt angesehen, aber nicht F1.

Und zweitens: Was für ein "der Fehler" denn? Es gibt durchaus mehr als eine Fehlermeldung und mein Hellseher ist gerade im Urlaub... :roll:
Basher Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 26.08.10 19:25 
Hi,

also, Visual Studio gibt mir richtig Vorschläge, welche Taste man benutzen kann, darunter ist auch F1.
Der Fehler lautet, Für das nicht statische Feld, die Methode oder Eigenschaft "System.Windows.Forms.Control.Show()" ist ein Objektverweis erforderlich.

Bin noch ein ziemlicher Neuling in C#. ;)

Basher
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 26.08.10 19:41 
Dann ist HelpForm keine Variable, in der du eine Instanz von deinem zweiten Formular hast, sondern der Klassenname des Formulars. Dann musst du zuerst eine Instanz erstellen und kannst die dann anzeigen.

Mehr dazu findest du z.B. hier:
openbook.galileocomp....de/csharp/kap05.htm
Basher Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 26.08.10 20:02 
hmm, ich hoffe ich hab es richtig verstanden.

hab jetzt
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 
keyPreview = true;

private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
   if(Control.Modifier.Keys == Keys.F1)
   {
       HelpForm test = new HelpForm();
       test.Show()
   }
}


Jetzt kommt zwar kein Fehler mehr, aber wenn ich f1 drücke, passiert nichts.

Basher
Basher Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 26.08.10 20:10 
habs hinbekommen.Man muss If(e.KeyDate == Keys.F1) verwenden, dann funktioniert das =)

Basher
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 26.08.10 20:54 
user profile iconBasher hat folgendes geschrieben Zum zitierten Posting springen:
habs hinbekommen.Man muss If(e.KeyDate == Keys.F1) verwenden, dann funktioniert das =)

Ich hab gerade allen ernstes Visual Studio geöffnet und nachgeschaut, warum das Alter der Taste denn eine Eigenschaft hat :lol:


Zuletzt bearbeitet von Yogu am Do 26.08.10 22:04, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 26.08.10 21:44 
user profile iconBasher hat folgendes geschrieben Zum zitierten Posting springen:
habs hinbekommen.Man muss If(e.KeyDate == Keys.F1) verwenden, dann funktioniert das =)
Das meinte ich mit dem Zweifel an Modifiers. ;-)