Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19

Textbox direkte Tastatur Taste.
Verfasst am: 16.03.2008, 12:29

Hallo Leute.

Ich habe in meinem Programm ganz viele Befehle die ein User auf Tasten belegen können sollte.

Er sollte also eine Art Textbox anklicken, und wenn er dort dann eine Tastatur drückt sollte der Befehl in der Textbox drin stehen, sprich User1 Drückt "strg" dann sollte "strg" auch in der Textbox drin stehen.

Ist die Textbox dafür geeignet ? oder gibt es vielleicht eine andere Form dafür
?
Wie kann ich sowas machen?

Gruß
_________________
 
Teto_
Poster
Poster

Anmeldedatum: 28.02.2007
Beiträge: 106


Verfasst am: 16.03.2008, 12:32

nehme das Key_Down Event oder Key_Press Event von der Textbox und dort prüft dann mit mit if anweisungen welche Taste gedrückt wird und dann sagst du ihm halt immer was passieren soll wenn die taste gedrückt wird.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 16.03.2008, 12:40

Key_Down ist hier das richtige.
Key_Press reagiert nicht auf Strg, Shift oder Alt.

Beim Key_Down Event bekommst du über die Variable Shift zurück, ob Shift, Strg oder Alt gedrückt wurde.

Shift = 1
Strg = 2
Alt = 4
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 14:30

Jopp geht , danke ^^

Gibts auch eine Möglichkeit das ich alle sachen vorschreibe und der User kann sie dann aus so einem Menü auswählen?

Gruß
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 16.03.2008, 14:48

ComboBox

Code:

Combo1.Additem "Text"

_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 19:22

Also so ganz scheint das nicht zu funktionieren:

Irgendwie verstehe ich das nicht ^^

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged


ComboBox1.Additem = "Test"

End Sub
End Class


"Fehler 1 "Additem" ist kein Member von "System.Windows.Forms.ComboBox".


Irgendwas mache ich falsch... bitte um Hilfe.

Gruß
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 16.03.2008, 19:23

Ganz einfach. Du codest scheinbar in VB.Net und nicht VB6.
Falsche Sektion Wink

Edit//
Ich verschiebs mal.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 19:45

Hab das Problem gelöst.

ComboBox1.Items.Add("test")

danke trotzdem Smile
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 16.03.2008, 19:48

So kannst du gleich mehrere Items hinzufügen Wink
Code:
ComboBox1.Items.AddRange(New String() _
{"IteamNr1", "IteamNr2", "IteamNr3", "IteamNr4", "IteamNr5"})

Und mit dem folgendem Befehl kannst du auswählen welches Iteam als Start Item angezeigt wird.
Code:
ComboBox1.SelectedItem = "ItemNr2"

_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 20:21

Danke für den Tipp^^

Das komische ist jetzt, mir wird garnichts angezeigt sobald ich das Programm dann ausführe.

So sieht mein Code jetzt aus.

Zitat:

Public Class Start

Private Sub auswahl_games_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles auswahl_games.SelectedIndexChanged


auswahl_games.Items.AddRange(New String() _
{"Unreal Tournament 2004", "Painkiller Black Edition", "Quake 4 Arena"})

auswahl_games.SelectedItem = "Painkiller Black Edition"


End Sub
End Class


Nur die Combobox bleibt nur mit einer leeren Auswahl bestehen, und ich verstehe nicht warum.

Weiß jemand Rat?
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 16.03.2008, 20:34

Code:
auswahl_games_SelectedIndexChanged

Falsches Event!
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 20:47

Sorry wenn ich Frage.
Das ist doch der Code wenn ich den Button anklicke, ist der nicht richtig?
Was muss ich für ein Event nehmen?

Sorry bin ganz neu in VB.NET Smile


Zuletzt bearbeitet von Revy_ am 16.03.2008, 21:13, insgesamt einmal bearbeitet
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 16.03.2008, 20:53



Links die Klasse und Rechts das Event.
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 16.03.2008, 21:10

Das mit den Klassen wusste ich noch garnicht.
Benutze jetzt TabIndexChanged, damit funktionierts.

Danke für deine Hilfe!

Habe ein kleines Problem.
Ich möchte gerne das was in der Combobox steht auswählen und mit eine If verzweigung versehen.

Wenn in der Combobox Quake3 Arena steht, soll die Q3.vb geöffnet werden.
Das klappt auch soweit, jetzt soll aber die start.vb beendet werden.
Deshalb habe ich Me.Close() drangehängt, dann beendet sich aber das ganze Programm.
Dachte ich mir, nagut mit Start.Close() wird es ja auch gehen, tut es aber nicht.. er sagt mir ich solle Me.Close verwenden.

Was mache ich nun?

habe es nochmal anders probiert :
Sobald zb. die Q3.vb gestartet wird:

Damit kann ich zwar Start.Close verwenden, aber es beenden sich alle Fenster. sprich die start.vb und die gewähle q3.vb

Zitat:

Private Sub q3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

start.close()

End Sub


Hoffe mir kann jemand helfen.




Zitat:

Public Class Start
' Combobox , Gameauswahl
Private Sub auswahl_games_TabIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles auswahl_games.TabIndexChanged
auswahl_games.Items.AddRange(New String() _
{"Quake3 Arena", "Quake4 Arena"})
auswahl_games.SelectedItem = "Quake4 Arena"
End Sub


Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
If auswahl_games.Text = "Quake3 Arena" Then
q3.Show()
Me.Close()
End If

If auswahl_games.Text = "Quake4 Arena" Then
q4.Show()
Me.Close()
End If


End Sub

End Class
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 17.03.2008, 00:16

Beende mal Windows und versuch weiterhin den Mediaplayer laufen zu lassen.
Verstehst was ich meine?

Du könntest die Form unsichtbar machen.
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 17.03.2008, 00:49

Gut das ich dies unsichtbar machen kann ist die eine Sache.

Aber das zieht ja ein Nachteil mit sich, die Form ist zwar unsicthbar... lauft aber auch unsichtbar weiter wenn ich zb. die Form von Q3 auch schließe.
Dann hat der Anwender ein Unsichtbares Programm am laufen.

Die Einfache Variante waere es jetzt einfach sobald die Form Q3.vb geschlossen wird , die start.vb wieder sichtbar wird.
Aber da Q3.vb quasi der abschluss des programmes ist, sollte sich auch das ganze Programm schließen.

Habe gedacht ich könnte es mit einer ganz einfaches If Anweisung lösen.

If q3.Close() Then
Me.Close()
End If

Aber er sagt mir dann das q3.close() keinen Wert hat.
Wie löse ich das denn nun richtig ?
 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.06.2007
Beiträge: 389


Verfasst am: 17.03.2008, 01:26

Die Form hat ein Event namens Onclosing. In das Event kannst du "End" reinschreiben. Damit wird abgefragt ob die Q3 Form grade geschlossen wird, falls ja, dann wird dein Code ausgeführt. In dem Fall wird das gesamte Programm geschlossen.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 17.03.2008, 01:57

Das ist echt hart, das versteh überhaupt nicht^^
Wo soll ich was reinschreiben, und dann wird mein code ausgeführt in dem fall wird mein Programm geschlossen !?O_O?!

Also meine Form hat kein Event was Onclosing heißt.
Die einzigen Events die mir zur verfügung stehen und die ich mit dem Bereich in Verbindung bringen würde sind folgende

Zitat:
Private Sub Start_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

End Sub


' und

Private Sub Start_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

End Sub


Da gibt es auch die "End-Anweisung" aber ich habe keine Ahnung wie ich die benutze und vorallem nicht wie ich damit abfragen soll ob die Q3 geschlossen wird.
Hat da jemand für mich einen Beispiel Quellcode ?
Weil wenn ich das nicht in eine If Anweisung packen kann, wie soll ich dann was Abfragen?

Gruß


Zuletzt bearbeitet von Revy_ am 17.03.2008, 02:10, insgesamt einmal bearbeitet
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 17.03.2008, 02:04

Code:
Me.Close()

Schließt immer nur die Form in der es aufgerufen wurde.
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 17.03.2008, 02:11

Ja inzwischen habe ich das auch realisiert ^^... das hilft mir aber bei dem genannten Problem nicht weiter.
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 17.03.2008, 02:15

Wie schließt du denn die Q3 Form, über einen Button?
_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 17.03.2008, 02:27

Nein das sollte ganz normal über das "X" oben rechts geschlossen werden.
Über einen Button wäre auch eine Möglichkeit, aber dann müsste ich das "X" oben Rehchts ja ausblenden weil sonst das selbe Problem besteht falls der Awender über das "X" das Programm beendet.
Abgesehen davon möchte ich unbedingt wissen wie das Problem wie es gerade besteht zu lösen ist ^^
 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 17.03.2008, 02:38

Ich konnte es wie folgt lösen.
Code:
Private Sub Q3_FormClosed(ByVal sender As Object, _
ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        start.Close()
End Sub

_________________
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Revy_
Newbie
Newbie

Anmeldedatum: 05.03.2008
Beiträge: 19


Verfasst am: 17.03.2008, 02:50

Und so funktionierts auch wunderbar.
Wirklich vielen dank!

Ich werde mir jetzt mal ein Kompendium zulegen oder eine Referenz wo ich mich nochmal genau über die Events informiere.

Wirklich vielen Dank.
Kann geschlossen werden.
 
Bahamut_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 12.12.2006
Beiträge: 250


Verfasst am: 17.03.2008, 10:46

Ich möchte allerdings noch etwas ergänzen - man kann tatsächlich die Startup-Form schließen und das Programm läuft weiter, bis die letzte Form geschlossen wird.

@tr4st: Vondaher war dein Vergleich mit Windows und dem Mediaplayer zwar ganz nett, aber leider falsch Razz

Ihr müsst einfach nur in den Projekteigenschaften unter "Shutdown mode" -> "When last form closes" auswählen

http://img166.imageshack.us/img166/1216/unbenanntnf1.jpg

Hat eben den Vorteil, dass die Startform nicht die ganze Zeit unsichtbar weiterläuft.
_________________
VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/
 
Teto_
Poster
Poster

Anmeldedatum: 28.02.2007
Beiträge: 106


Verfasst am: 17.03.2008, 11:21


Das Problem ist du musst in deinem Projekteigenschaften umstellen,das wenn das Startformular geschlossen wird nicht das Programm beendet wird.

Dazu gehst du oben auf

Projekt->*Projektname*-Eigenschaften dort in den Reiter Anwendungen und dort steht "Modus für das Herunterfahren" dort stellst du ein, beim Schließen des letzten Formulars.

Edit: habe gar net gesehen das Bahamut schon geposted hatte^^
_________________


 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: tastatur, textbox, tasten

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Suche viele Leute für einen Downloader 516 28.09.2009, 16:10
Keine neuen Beiträge [Video] VB Programm "stylen" 2826 05.02.2008, 15:09
Keine neuen Beiträge programm erstellen mit schleife und url aufrufen 760 01.04.2007, 08:47
Keine neuen Beiträge Mein erstes Programm 1079 30.01.2007, 20:14
Keine neuen Beiträge Programm 673 27.01.2007, 22:26
 



[ Time: 0.8213s ][ Queries: 181 (0.0552s) ][ GZIP on - Debug on ]