Hur når jag en textbox i C# från en annan klass?

Permalänk
Medlem

Hur når jag en textbox i C# från en annan klass?

Jag har skapat ett fönster som ska komma upp när man klickar på en knapp och i detta nya fönster ska en string följa med som ska in i en textbox. Jag har försökt skapa en funktion i klassen där man kan modifiera textboxen utifrån men hur jag än gör så får jag inte rätt på den. Jag har skrivit public void framför funktionen men det hjälper inte. Jag får upp fönstrets klass när jag skriver in dess namn i en annan klass men funktionen finns inte där. Hur löser jag detta enklast?

Permalänk
Medlem

Det tillvägagångssätt du har använt ska vara OK. Kan du lägga upp en codeplex eller liknande med din kod (för just dessa två klasser då, givetvis) så man kan kolla hur du gjort?

Visa signatur

ASUS U36SD-RX366V | BitFenix Prodigy | ASUS P8H77-I mITX | Be Quiet! Pure Power L8 530W 80+ | Intel Core i7 3770S 3,1Ghz (Ivy Bridge) | Intel 335 SSD 240 Gb | Corsair CL11 1600Mhz XMS3 2x8192Mb | MSI GeForce GTX 660 TwinFrozr III | Netgear ReadyNas Duo V2 | Raspberry Pi Model B | AppleTv 2nd Gen (JB:ed)

Permalänk
Medlem

Såhär ser koden ut för klassen vars funktion jag försöker nå utifrån

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace reparationsdatabas { public partial class visa_kund : Form { public static string name; public visa_kund() { setName(name); InitializeComponent(); } public void textBox1_TextChanged(object sender, EventArgs e) { } void setName(String name) { textBox1.Text = name; } private void button1_Click(object sender, EventArgs e) { } } }

Permalänk
Medlem

i din kod finns det ingen "koppling" mellan variabeln 'name' och din textbox. den enklaste lösningen på ditt problem är nog att göra SetName(string) public och använda dig av den istället.
alternativt kan du ändra din konstruktor så att den tar en sträng som in-parameter.

sen bör man inte anropa saker som använder sig av kontrollerna i fönstret innan du kört funktionen InitializeComponent();.

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem

Anropa en metod som tar in antingen:
Pseudo:
kontrollen och ett värde
eller
ett värde

Exempel:
Form1:

public void Set(TextBox box, string value){ box.Text = value; }

Användande: Set(textBox1, "Hejsan SweClockers!");

I metoden sätter du att kontrollens egenskap .Text är = värdet inskrivet i parameter 2.
Om metoden är publik är den anropbar från andra klasser.

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40