Es ist wohl am Besten die Operation in einen anderen Thread auszulagern. Du kannst zwar im Hauptthread Application.DoEvents() aufrufen damit alle UI Events ausgeführt werden, bei größeren Arbeitsbrocken zwischen den Aufrufen kann die UI aber ins Stocken geraten. Deswegen empfehle ich dir, mach es mit einem zweiten Thread.
ok that sich erledigt für die die es interessiert das problem war das ich immer einen pointer auf einen neuen knoten übergeben hab und nicht den pointer auf das knoten item das ich gerade erstellt hatte:
korrekt ist es also so:
void renametool::Form1::bAddFolders_Click(System::Object * sender, System::EventArgs * e){
if(folderBrowserDialog1->ShowDialog()==DialogResult::OK){
this->tvFolders->BeginUpdate();
String *folderName=folderBrowserDialog1->SelectedPath;
this->tvFolders->Nodes->Add(folderName);
int count=0;
if(this->cbTiefensuche->Checked){
this->r_addSubNodes(this->tvFolders->Nodes->Item[count]);
}
this->tvFolders->EndUpdate();
}
}
void renametool::Form1::r_addSubNodes(TreeNode * node){
String *directorys[]=System::IO::Directory::GetDirectories(node->Text);
if(directorys->Count>0){
int i=0;
Collections::IEnumerator* myFirstEnum=directorys->GetEnumerator();
while(myFirstEnum->MoveNext()){
String *directory=myFirstEnum->Current->ToString();
node->Nodes->Add(directory);
r_addSubNodes(node->Nodes->Item[i]);
i++;
}
}
}
Weis einer wie ich im C# Quellcode eine *.mp3 file abspielen kann?
also ganz einfach auf einen button drücken und dann soll er im hintergrund eine festgelegt mp3 abspielen.
PS: wenn das noch jemand weis wie ich das noch für den MDA umsetzen kann wäre das klasse
Hi,
folgendes Problem: Ich versuch verzweifelt über ODBC ne Datenbank zu erreichen. Krieg des aber nicht gebacken. Hab schon bissel gegoogelt und alles, aber ich krieg immer nen Fehler... Was ich bisher hab:
System.Data.Odbc.OdbcConnection myConn = new OdbcConnection();
myConn.ConnectionString = @"DSN=HPS MASSNAHMENPLAN;" + @"Trusted_Connection=yes;";
Der Fehler:
Request for the Permission of type 'System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed
Der Fehler tritt auf, wenn ich myConn.Open() aufrufe. Habt ihr irgendne Idee?
Danke im voraus.
Greez Osiris
Leider ist es in der gleichen Solution.
Die Referenz hab ich über Add Referenz eingefügt.
Dabei hab ich nicht mal den Pfad zur dll sondern zu dem Projekt angegeben
*hilflos*
Hallo,
wir setzen an unserem Zielsystem mehrere Monitore ein. Allerdings soll nur der Hauptmonitor bedient werden können. Die anderen werden nur zur Anzeige von Daten verwendet.
Gibt es eine Möglichkeit den Mauszeiger nur auf dem Hauptmonito zu halten?
Gruss
Jürgen
Servus,
schau mal hier ist das schön erklärt:
http://www.c-sharpcorner.com/2/winformstut.asp
und hier kannst du dich über EventHandling einlesen:
http://www.csharp-station.com/Articles/EventHandlingInCSharp.aspx
Alternativ ist natürlich die MSDN zu empfehlen. Ansonsten einfah mal EventHandler / Handling in Google suchen. Du wirst eine Menge Erklärungen finden.
mfg
Hellsgore
Die Frage gehört zwar eigentlich in das C++ Forum, aber egal :).
In der Headerdatei steht normalerweise die Deklaration der Klasse, mit allen Membern, Konstruktoren, Methodenprototypen, usw., jedoch aber kein eigentlicher Code. Der wird in die *.cpp Datei geschrieben. Hier ein kleines Beispiel:
// Inhalt von Test.h
// includes usw.
class Test
{
public:
void MachEtwas(); // das ist der Prototyp (Deklaration) der Methode MachEtwas()
}
// Inhalt von Test.cpp
// includes usw.
void Test::MachEtwas() {
// hier steht schlussendlich der Code, den die Methode ausführt
}
Grundsätzlich trennt man die Deklaration und den "eigentlichen Code" nur wegen besserer Übersichtlichkeit. Du kannst natürlich auch alles nur in Header- oder *.cpp Dateien schreiben, das sieht dann aber nicht wirklich schön aus und dauert vermutlich länger beim Kompilieren.
der variablen Namen lautet im code auch anders.
es ist mit relativ egal ob zahlen nicht eingegeben werden können oder die prüfung per Regex. der code ist momentan noch recht flexibel umstellbar :).
hast du eine idee?
Hallo zusammen,
ich habe mit Visual Studio 2003 eine C#-Anwendung für den PocketPC entwickelt. Diese verwendet eine StackForm für MultiForm-Anwendungen. Das Problem ist nun folgendes:
Ich habe selbst einige Events definiert, die ich am bestimmten Stellen auslöse. Diese kommen aber nie beim entsprechenden Eventhandler an. Irgendwie scheinen sie in der Zwischenzeit verschluckt zu werden. Die Run-Methode meines StackForms sieht folgendermaßen aus:
public void Run()
{
do
{
System.Windows.Forms.Application.DoEvents();
}while(List.Count>0);
}
Die DoEvents-Methode sollte eigentlich alle Events, für die sie nicht zuständig ist, weiterleiten an die entsprechenden Eventhandler. Das passiert aber offensichtlich nicht. In einer kleinen Testanwendung ohne FormStack funktioniert alles wunderbar, an der Definition des Eventhandlers kann es also nicht liegen. Hat jemand Erfahrungen damit?
Vielen Dank für Eure Hilfe!
Gruß Benni
Hi,
ich möchte eine Lib in C++ CLI schreiben und die sowohl in C++ CLI Apps wie auch in C# Apps verwenden. In dieser Lib kommen Klassen vor die Operatoren haben und jetzt fängt das Problem an.
Ich habe nun zwei Möglichkeiten
1.)
Vector3^ operator += ( Vector3^ value );
2.)
Vector3 operator += ( Vector3 value );
Problem bei der ersten Möglichkeit:
Die Operatoren können in C# ganz normal genutzt werden, allerdings nicht in C++ auf dem Stack erstellt werden und dabei die Operatoren nutzen, sondern nur auf dem Heap.
Problem bei der zweiten Möglichkeit:
Ich kann die Klasse in C++ auf dem Stack erstellen und die Operatoren nutzen, aber di Operatoren können in C# gar nicht mehr genutzt werden.
Ich habe mir mal die Vektoren von Managed DirectX zu Gemüte geführt und erkannt das beides geht: Ich kann die die Klasse in C++ auf dem Stack erstellen und die Operatoren nutzen und die Klasse auch in C# ganz normal nutzen.
Wenn ich die Lib in C# schreibe, geht es. Da ich aber einiges Optimieren will, wäre mir C++ CLI lieber.
Im vornherein eher gar nicht. Der Formatter erkennt beim Deserialisieren aber schon, wann ein Objekt aufhört und wann ein neues anfängt, falls das deine Sorge ist. Wenn du unbedingt vorher wissen musst, wieviele Objekte kommen, kannst du vielleicht diese Information mit in die Datei schreiben.
Welche Objekte es dann sind, kannst du per Reflection herausfinden. Ich kenn jetzt deinen Anwendungsfall nicht, evtl. ist das nicht die beste Lösung.
Danke,
bin dann auf diese Lösung gekommen.
Klar, mit einem StreamReader kann ich auch nicht scheiben ...
// einlesen
streamReader = new StreamReader(mFilename);
xdd.DataSet.ReadXml(streamReader,XmlReadMode.InferSchema);
dataGrid.SetDataBinding(xdd.DataSet,"Code");
streamReader.Close();
//speichern
xdd.Save(mFilename);
zeilen als spalten und spalten als zeilen interpretieren - du musst doch ne möchgleichkeit haben auf die einzelnen Pixel des Bildes zu greifen - wo liegt das problem?
So, hab es hinbekommen.
Hab einen Artikel gefunden, der genau das Problem beschreibt.
Falls es jemanden interessiert:
http://www.devtrain.de/printnews.aspx?artnr=817
Danke für Eure Hilfe!!!