Neueinsteiger hat ein paar kleine Fragen... Bitte um Hilfe...

Matze7

Mitglied
Hallo erstmal,

bin jetzt nach etlichen Jahren (früher etwas VB6) wieder mal in das Thema eingestiegen, da ich gerne was kleines programmieren würde. Sorry deshalb für meine Newbie Fragen, ist schon länger her... (Habe hier leider keinen Bereich für Anfängerfragen für .NET gefunden)

Habe mir jetzt die einfache kleine VB 2008 Express Edition geladen, die vollkommen reichen müsste.

Nun zu meinen Fragen.

1. Ich habe 2 Testfelder. In das erste soll eine Eingabe erfolgen, die in dem 2. Testfeld gleichzeitig kopiert und dann als Barcode ausgegeben / angezeigt werden soll. (und später dann über einen Druckbutton zusammen mit Inhalt aus Testfeld 1 und 2 + Datum als Ettikett ausgegeben werden soll)

Ich müsste also erstmal den Inhalt von Testfeld 1 automatisch in das Testfeld 2 kopiert haben. Dann müsste aber zu dem kopierten Inhalt von Testfeld 1 noch jeweils ein * (Sternchen) vor und nach der Eingabe aus Textfeld 1 stehen, da ich den Barcode über eine Schriftart generieren will. Der Barcode (39) benötigt aber am Anfang und am Ende immer das * (Sternchen) als Start und Stop Zeichen, um richtig von einem Scanner gelesen zu werden.

Beispiel: Ich gebe in Textfeld 1 die Nummer 123456789 ein. (Nun soll auch diese Nummer im Textfeld 2 erscheinen, aber am Anfang und Ende noch ein * (Sternchen) dran, also *123456789* (Durch die Barcode Schriftart als Font wird dann dort nicht die Zahl mit den Sternchen angezeigt, sondern der richtige Barcode)

Das Textfeld 2 sollte wenn möglich auch sofort bei der Eingabe in Textfeld 1 umwandeln, also wenn ich mit der 1 beginne, dann auch automatisch im Textfeld 2 schon die *1* stehen sollte, dann so weiter... Eingabe 12 --> *12* (Also quasi so, das man nicht erst was anderes machen muss, damit das Textfeld 2 aktualisiert wird)

2. Ich habe versucht einen Druckbutton in mein Formular ein zu fügen und zu platzieren, leider funktioniert das nicht so, wie gewünscht, es wird leider nicht auf dem Formular abgelegt, sondern darunter auf einer seperaten Fläche. Was mache ich Falsch?

3. Ich würde dann letztendlich den eingegebenen Inhalt auf ein Etikett ausgeben / drucken. Gibt es die Möglichkeit dieses zu gestalten, also unabhängig von der normalen Programmoberfläche? (Ich denke ich könnte hier auch wieder die Möglichkeit des Kopieren der Felder nutzden, oder?)

4. Ich habe die Funktion "DateTimePicker1" zur Anzeige und Auswahl des Datums gewählt, ist es ebenfalls möglich dieses auf dem Druck sauber aus zu geben.

Ich muss dazu erwähnen, das der Druck natürlich nur die Inhalte enthalten soll, also kein Bildschirmabdruck sein soll. (also nur der Zahleninhalt von Textfeld 1, den Barcode von Testfeld 2 und das Datum von der Funktion "DateTimePicker1")

Ist das umsetzbar, für die Profis sicherlich ganz einfach, oder? Ich hoffe ihr könnt mir ein wenig helfen, da ich wirklich wieder ganz am Anfang stehe...

Danke
 
1. Du erstellst die beiden TextBoxen, klickst bei der ersten im Eigenschaften-Fenster auf "Ereignisse", und klickst dann doppelt auf "TextChanged". Du kommst in den EventHandler, und fügst eine Zeile hinzu:

Code:
TextBox2.Text = "*" & TextBox1.Text & "*"

2. Das war wahrscheinlich kein Druck-Button, sondern ein PrintDocument oder sowas in der Art. Das mit dem Drucken ist schon etwas komplizierter :) .
Als erstes fügst du dem Fenster ein PrintDocument und einen PrintDialog hinzu. Beim PrintDialog stellst du die Eigenschaft "Document" auf das neue PrintDocument. Beim Ereignis "PrintPage" vom PrintDocument fügst du wieder einen Handler hinzu. Dann erzeugst du noch einen Button, auch mit einem Handler. Der Code zum Drucken muss dann folgendermaßen aussehen:

Visual Basic:
     Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
          e.Graphics.DrawString(TextBox2.Text, TextBox2.Font, Brushes.Black, 10, 10)
          e.Graphics.DrawString(DateTimePicker1.Text, Me.Font, Brushes.Black, 10, 30)
     End Sub

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          PrintDialog1.ShowDialog()
          PrintDocument1.Print()
     End Sub

Damit hab ich glaube ich alle Fragen erschlagen? ;)
 
Zuletzt bearbeitet:
WOW! Danke erstmal für die sehr schnelle Hilfe! Ich bin begeistert!

Habe kurz getestet und es geht soweit auch alles...

Was mir aber aufgefallen ist...

Wenn ich den Druckbutton drücke und mein Druckermenü auf geht und ich anschließend auf Drucken abbrechen drücke, druckt er trotzdem... (ist aber nicht wichtig, weil der Druck anders laufen sollte, siehe unten)

Auch druckt er einiges nicht, anderes übereinander. Also ich bräuchte noch eine Möglichkeit, das PrintDocument1 passend zu gestalten, das er auch das druckt, was ich möchte. (und wo ich es genau hätte)

Geht das?

Kann man auch einstellen, das er automatisch auf dem Standarddrucker druckt, bzw. einen einstellbaren Drucker und dessen Seiten und Druckeinstellungen?

Wenn ich dann das Etikett drucke, soll es auch gleich auf dem Etikettendrucker ausgegeben werden, also ohne zusätzliche Abfrage. Man müsste also vielleicht den Drucker vorher auswählen oder fest vorgeben können... Ist das möglich?
 
Zurück