C# Textbox.Text werkt niet in andere class

Status
Niet open voor verdere reacties.

cuperus

Gebruiker
Lid geworden
2 nov 2010
Berichten
43
hallo mensen,

Ik heb een form genaamd "Main_Program.cs" en ik heb een class file genaamd "Texts.cs"
ik heb in Main_Program.cs heb in een textbox genaamd debugTxt en de value van modifiers staat op public. wat ik nou wil is dat ik via Texts.cs een void maak en dat ik via Main_Program.cs dit kan doen Texts.Debug("Dit komt in de debugtxt te staan"); maar dat lukt mij maar niet

willen jullie mij aub helpen

groeten kevin
 
Even voor de goede orde

Je hebt een event in class 1 en je wil een functie in class 2 die in class 1 iets aanpast. Wat je wil kan overigens via een omweg wel, maar waarom niet de functie toevoegen in class 1?

Class 1 is "eigenaar" van de textbox daarin. Dus eigenlijk zou elke aanpassing moeten gebeuren via een call in class 1. Het direct aanroepen van members van een andere class is juist NIET wat je wil in een OO omgeving.
 
Hmm... ik wil het heel graag in class2 lukt dat neit doe dan maar in class1 kan jij een klein scriptje maken:$
 
Kun je uitleggen waarom je zo wil hebben? mogelijk is er een mooiere oplossing.

voor in je hoofdprogramma
Code:
public void Debug (string DeText)
{
    MyTextbox.text = DeText
}

Overigens heeft C# dus een ingebouwde "TRACE" functionaliteit. Dus als je dit alleen voor tijdelijk debuggen wil gebruiken zou ik trace gebruiken.

Code:
using System.Diagnostics;
 Trace.WriteLine("mijn tekst");
 
Dat zal ik dan eventjes uitleggen! ik wil in meerder classes werken zodat ik alles kan debuggen in elke class.....

en als ik dat Trace wil gebruiken hoe zorg ik er dan voor dat het in de textbox komt te staan?
 
Laatst bewerkt:
Trace komt onderin je debug window te staan. Je ziet de trace berichten dus verschijnen in je programmeerwindow waar normaal de foutmeldingen etc. verschijnen. Het is juist zo gemaakt dat je niet zelf met boxen en dergelijke hoeft te knoeien. Trace werkt altijd in elke module.

Overigens kun je trace berichten via een handler ook wel weer in je textbox laten verschijnen :P (zie http://www.helpmij.nl/forum/showthr...l-tcp-server?p=4214439&viewfull=1#post4214439 ), maar voor de meeste toepassingen is het gebruik van Debug of Trace voldoende
 
probeer

Code:
<naam class1> form = new <naam class1>();
form.textbox1.text = "test";

zo ziet het eruit dan uit:

Code:
Main_Program form = new Main_Program();
form.textbox1.text = "test";
form.refresh();


de form refresh is om de nieuwe text te laten zien anders werkt hij niet!

mvg SteeledBoot
 
Laatst bewerkt door een moderator:
@cuperus Helpen doen we uitsluitend via het forum, daarvoor is dit ook bedoeld.
 
FormvanTextbox.Invoke(new Action(delegate() { /* HIER DE ACTIE DIE JE WILT UITVOEREN */}));
 
Of natuurlijk een static functie maken in Main_Program..

[CPP]public class MainProgram {
public static void Debug(string s) {
debugTxt.Text = s;
}
}


public class Test {
public Test() {
MainProgram.Debug("Foutmelding");
}
}[/CPP]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan