Laden...

Windows Forms - Text fixieren und Text anhängen

Erstellt von nytrec vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.621 Views
N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren
Windows Forms - Text fixieren und Text anhängen

Hallo Leute,

ich habe mal eine Frage.

Zuerst habe ich hier folgenden Code:


using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonAnzeigen_Click(object sender, EventArgs e)
        {
            if (System.IO.File.Exists(textBox1.Text))
            {
                if (textBox1.Text != String.Empty)
                {
                    FormMax neuesFormular = new FormMax();
                    neuesFormular.Bildladen(textBox1.Text);
                    neuesFormular.Text = textBox1.Text;
                    neuesFormular.ShowDialog();
                }
            }
        }
    }
}

Ich möchte gerne, dass der Titeltext im neuen Formular fixiert bleibt bzw. sich nicht verändert. Daneben soll auch der Pfad von der Bilddatei stehen:

(Beispiel): TitelText - C:\Users\nytrec\Desktop\kind.jpg

Wie kriege ich das hin? Ich kriege nur den Pfad im Titel geschrieben, aber der TitelText von dem Formular soll auch da stehen. 🙂

16.806 Beiträge seit 2008
vor 4 Jahren

Ich sehe hier nirgends in Deinem Code irgendein Titel Text; aber Du musst - ich rate mal, da ich nicht genau weiß, was Du meinst - den String vom Formular Titel und der Textbox kombinieren.

Beispiel:
string title = title + " " + "Text hier";

Siehe auch [FAQ] Wie finde ich den Einstieg in C#?

4.931 Beiträge seit 2008
vor 4 Jahren

Es reicht hier einfach


neuesFormular.Text += " - " + textBox1.Text;

Für lesbareren Code solltest du eine Variable für textBox1.Text anlegen:


string filepath = textBox1.Text;
if (System.IO.File.Exists(filepath))
{
    if (filepath != String.Empty) // hier geht auch !String.IsNullOrEmpty(filepath)
    {
        FormMax neuesFormular = new FormMax();
        neuesFormular.Bildladen(filepath);
        neuesFormular.Text += " - " + filepath;
        neuesFormular.ShowDialog();
     }
}

PS: Du könntest den Titel auch direkt in FormMax.Bildladen() ändern.

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Vielen Dank euch beiden! Habt mir sehr weitergeholfen! God bless you! 🙂

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Hi Leute,

ich habe noch eine kleine Frage.

Ich möchte über einen Button den Wert von einem Textbox für einen Timer benutzen.

Habe folgendes im Button:

float zahl;
zahl = Convert.ToSingle(textBox.text);
 textBox.Text = timer.Interval.ToString();

Ich weiß nicht, ob das der richtige Befehl ist. Aber es funktioniert nicht, weil nur der Wert vom Eigenschaftsfenster übernommen wird. Wie kriege ich das hin? 😃

4.931 Beiträge seit 2008
vor 4 Jahren

Du meinst folgendes?


timer.Interval = zahl; // bzw. (int)zahl

(wenn der eingegebene Wert in Sekunden ist - daher wohl float -, dann noch mit 1000 multiplizieren, also timer.Interval = (int)(zahl * 1000))

Aber demnächst für jede Frage ein neues Thema erstellen.

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Sry, dachte, wenn ich schon bei Windows Forms bin, kann ich auch hier andere Fragen stellen. Merke ich mir für die Zukunft. 👍

Ich muss aber den Wert von der Boxtext übernehmen.

also textBox.Text = timer.Interval.

Ich kann nach timer.interval kein = setzen, verstehst du? ^^

edit:

Habe es jetzt so gemacht, wie du es geschrieben hast.

timer.Interval. = (int) (zahl * 1000) - aber es funktioniert nicht. Der übernimmt die Zahlen vom Eigenschaftsfenster.

16.806 Beiträge seit 2008
vor 4 Jahren

nytrec, Du musst Dir unbedingt die Grundlagen in C# anschauen.
Dann kommst Du auch selbst schneller voran. Du tust damit vor allem Dir einen gefallen.

"Funktioniert nicht" ist zudem keine Fehlermeldung, mit der irgendjemand etwas anfangen kann.
[Hinweis] Wie poste ich richtig? Punkt 5

Bei Compiler Fehlern gibt Dir Visual Studio im Error immer eine Hilfe, wie Du den Fehler löst; verweist u.a. auf die Dokumentation.
[Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Also, im Eigenschaftsfenster steht im timer "Interval 5".

Wenn ich jetzt über die Anweisung:

timer.Interval = (int) (zahl * 1000) jetzt was verändere, übernimmt er die Zahlen, die im Eigenschaftsfenster sind, also Interval 5.

Ich möchte aber im TextBox eine Zahl eingeben, die er dann für die Interval übernimmt.

Ich schaue mich natürlich auch im Netz um. Aber finde nicht das passende für mein Problem. X(

16.806 Beiträge seit 2008
vor 4 Jahren

Bitte keine Fullquotes. [Hinweis] Wie poste ich richtig?
Wir haben auch anderes zutun, als ständig Deine Beiträge zu editieren. Danke 😃

Folgendes musst Du inhaltlich tun:
Du musst den Text aus der Textbox auslesen, in ein Int parsen und dann dem Interval zuweisen.

Beschäftige Dich einfach ein paar Stunden mit den Grundlagen.
Wenn Du das in der Schule lernen würdest, dann würde ich aus eigener Erfahrung sagen, dass das innerhalb der ersten vier Stunden Programmieren dran kommt 😉

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Verzeih mir, Abt!

Ich werde mich dafür selbst bestrafen! Kannst dir natürlich eine Strafe ausdenken! 😁

Ich habs endlich hinbekommen!

Sag mal, Abt, in der Vergangenheit hast du mich mal auf einem Link verwiesen, wo alle Befehle mit Erklärungen draufstehen. Kannst mir wieder diesen einen Link hier posten? Ich finde das nämlich nicht mehr. 🙁

16.806 Beiträge seit 2008
vor 4 Jahren

Mir ein Rätsel, warum Du von Strafe sprichst, wenn es den Sinn verfolgt, dass Du Dir selbst damit hilfst.
Ich weiß nicht welche Seite Du meinst; aber Du siehst in Deinem Profil alle Deine Beiträge und kannst dann suchen, was Du meinst.
Alternativ die erweiterte Forensuche verwenden.

N
nytrec Themenstarter:in
37 Beiträge seit 2017
vor 4 Jahren

Du musst das nicht so ernst nehmen, ist nur Spaß!

Egal, danke dir für deine Hilfe. 🙂