Entwickler-Ecke

WinForms - Funktion an Button übergeben


bfmeb - Di 30.06.09 10:46
Titel: Funktion an Button übergeben
Hallo!
Bin Einsteiger, nutze WinXP, Visual Express C# 08!

Ich möchte an den Button

XMLConverterForm.cs

C#-Code:

C#-Quelltext
1:
2:
3:
4:
5:
6:
private void ConvertRun_Click(object sender, EventArgs e)
        {

        }

eine Funktion zuweisen die in einem anderen Projekt und in einer anderen Klasse existiert

Mapper.cs

C#-Code:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
public bool Convert(string inputFilename, string outputFilename)
        {
            try
            {
                LoadMapping(inputFilename);
                Save(outputFilename);
                return true;
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                return false;
            }
        }

Muss ich eine Schnittstelle bauen? Wie übergebe ich die Parameter?
Das Tool ist ein Konvertierungstool, der Code ist fertig, ich soll eine GUI dahinter bauen.
Danke für schnelle Antworten.


gourmelin - Di 30.06.09 11:05

Hallo!

Du musst erstmal einen Verweis auf das andere Projekt hinzufügen. Also in deinem Projekt auf Verweise, Verweis hinzufügen, Projekte und dann das andere Projekt auswählen (wenn du beide Projekte in einer Projektmappe hast)

Gibt in der Express Version überhaupt Projektmappen? Falls nicht, musst du zuerst das eine Projekt erstellen. Du hast dann eine Dll in dem bin/relase ordner. Auf diese musst du den Verweis setzen.

dann musst du die using directive benutzen um die Convert Klasse in deinem Code verwenden zu können.
Dann eine INstanz der Klasse erstellen, z.B.


C#-Quelltext
1:
using MyNamespace.Converter;                    



C#-Quelltext
1:
2:
3:
4:
5:
private void ConvertRun_Click(object sender, EventArgs e)
        {
Convert c =  new Converter(); 
c.convert("hier die Parameter","übergeben");
}


jaenicke - Di 30.06.09 11:07

Hallo und :welcome: im Forum!

Da es sich bei Convert um keine statische Methode handelt, musst du das entsprechende Objekt instantiieren und dann darin die Methode aufrufen. also so ungefähr:

C#-Quelltext
1:
new Mapping().Convert(@"c:\..."@"c:\...");                    


// EDIT:
Ja, genau, wobei das using nicht nötig ist, wenn Mapping sich im selben Namespace befindet.


bfmeb - Di 30.06.09 11:26

Okay Danke hier werd ich wenigstens nicht runtergemacht das ich sowas ni weiß!
Hat soweit geklappt :)


jaenicke - Di 30.06.09 11:30

user profile iconbfmeb hat folgendes geschrieben Zum zitierten Posting springen:
Okay Danke hier werd ich wenigstens nicht runtergemacht das ich sowas ni weiß!
Man kann ja nicht alles sofort wissen. ;-)


Th69 - Di 30.06.09 12:07

Damit du aber auch die Grundlagen verstehst (anstatt sie nur abzutippen), empfehle ich dir das OpenBook http://www.galileocomputing.de/openbook/visual_csharp/