C# Textbox Inhalt verwenden?
Hallo liebe Community Ich bin ein Hobbyentwickler und habe mir für die Arbeit ein arbeitabnehmendes Programm entwickelt. Da ich es nur Hobbymäßig mache, habe ich einige Lücken. Wir haben eine grafische Oberfläche für unsere Drucker wo wir einige Infos bekommen. Auf diese gelangt man über die lokale IP Adresse. Ich habe eine Liste erstellt von allen ca. 150 druckern. Jeder Drucker hat einen name. Zur verdeutlichung: string ltap3016 = "10.1.84.050"; So habe ich alle Drucker definiert. Jetzt möchte ich, dass wenn ich in eine Textbox den Name (ltapxxxx) eingebe, dann auf einen Button drücke er die Grafische Benutzeroberfl#che im Browser läd. Das Problem ist, dass ich nicht weiss, wie der Button den Inhalt der Textbox benutzt und wie der Inhalt mit dem String abgeglichen wird und/oder ob ich es gar nicht als String definieren soll sondern anders. Vielen lieben Dank für eure Hilfe :) LG
3 Antworten
Am einfachsten geht es indem du eine Klasse für deine Drucker definierst und die Items Eigenschaft der Combobox benutzt. Dafür musst du die ToString() Methode in deiner Drucker Klasse überschreiben und eine sinnvolle Bezeichnung für deine Drucker zurückgeben. Wenn der Knopf gedrückt wird kannst du das selektierte Item anfragen (dein Drucker Objekt), das in deine Druckerklasse casten und damit weiterarbeiten.
Ich poste dir mal ein simples Programm als Beispiel. Dieses verwendet eine Combobox (combobox), einen Button (button) und ein Label (label).
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Combobox
{
public partial class Form1 : Form
{
public class Drucker
{
public string Name { get; set; }
public string IP { get; set; }
public string LableCaption => string.Format("{0} ({1})", Name, IP);
public Drucker(string Name, string IP)
{
this.Name = Name;
this.IP = IP;
}
public override string ToString()
{
return Name;
}
}
List DruckerListe;
public Form1()
{
InitializeComponent();
DruckerListe = new List();
DruckerListe.Add(new Drucker("Drucker A", "192.168.0.1"));
DruckerListe.Add(new Drucker("Drucker B", "192.168.0.2"));
DruckerListe.Add(new Drucker("Drucker C", "192.168.0.3"));
DruckerListe.Add(new Drucker("Drucker D", "192.168.0.4"));
DruckerListe.Add(new Drucker("Drucker E", "192.168.0.5"));
DruckerListe.Add(new Drucker("Drucker F", "192.168.0.6"));
comboBox.Items.AddRange(DruckerListe.ToArray());
}
private void button_Click(object sender, EventArgs e)
{
if (comboBox.SelectedItem is Drucker)
{
label.Text = ((Drucker)comboBox.SelectedItem).LableCaption;
}
}
}
}
viel Erfolg,
gruss dj
Vielen lieben Dank für die Bemühung! Hat alles geklappt. LG
gutefrage bekommt immer noch keine spitzen Klammern hin. *grummel*
also in dem Quellcode muss statt
List DruckerListe;
List<Drucker> DruckerListe;
und statt
DruckerListe = new List();
DruckerListe = new List<Drucker>();
stehen.
Das ganze sollte so in etwa aussehen:
... onclick_deinButton(...)
{ string text = textfeld.Text;
}
Jedoch hätte ich dir empfohlen das Druckername/IP-Mapping als Dictionary<string, string> anzulegen, anstatt von vielen einzelnen Variablen.
Habe jetzt den Printer als Array deklariert als typ String mit max 500. Dann unten die letzten 4 Nummern (ltap seht bereits in der textbox) abgefragt und dann findet er die IP passend zu der Nummer :) Danke für die Hilfe. LG
Ich probier es gerade mal aus, jetzt schonmal danke für die schnelle Antwort!
du kannst in den Button doch einfach folgendes rein schreiben:
String printer = textBox1.text;