2010-12-30 3 views
1

Ich brauche ein Formular Objektwert zu nehmen und es in eine statische Methode übergeben:Pass Form Objektwert statische Methode

public void SetCalendarStartSafe(DateTime startDateSafe) 
{ 
    startDateSafe = calendarStart.Value; 
} 

private static DataTable GetData() 
{ 
    frmMain frm = new frmMain(); 
    DateTime startDate = new frmMain(); 
    frm.SetCalendarStartSafe(startDate); 
} 

Jedoch habe ich heute den aktuellen Zeitpunkt halte, wenn ich versuchen, diesen Ansatz, auch wenn die angegebene Kalenderdatum auf dem Formular ist anders. Wie kann ich das vom Benutzer angegebene Kalenderdatum vom ursprünglichen frmMain-Objekt angeben? Vielen Dank im Voraus für jede Anleitung.

+0

Ist das C#? Wenn Sie Ihre Frage zumindest mit dem Namen der Sprache versehen, die Sie verwenden, wird es leichter zu finden und zu beantworten;) –

+1

Schreiben Sie Code, der einige Chancen der Kompilierung, das ist nicht in der Nähe von einer Meile. –

+1

'DateTime startDate = neue frmMain()'? Ist startDate eine DateTime oder ist es ein frmMain? Vielleicht lese ich deinen Code falsch. –

Antwort

0

Sie werden GetData() von irgendwo im Code aufrufen, der nicht statisch ist? wie zum Beispiel von einem Fall, in dem Formular .. in diesem Fall die Parameter die statische Methode GetData passieren (Datetime ..)

+0

GetNumericTimeSeries(): private statisch NumericTimeSeries GetNumericTimeSeries() { NumericTimeSeries numTimeSeries = new NumericTimeSeries(); DataTable dTable = Getata(); foreach (DataRow-dr in dTable.AsEnumerable()) { NumZeitSeries.Points.Add(), System.Double.Parse (dr.ItemArray [8] .ToString()), String.Format ("{0: M/d/yyyy} ", dr.ItemArray [2]), falsch)); } Rückgabe numTimeSeries; } – jrubengb

+0

?? Warum übergeben Sie den Parameter nicht an statische Funktion. Wenn Sie auf instantiierte Objekte aus statischen Funktionen zugreifen möchten, übergeben Sie den Parameter des Objekttyps besser an Ihre statische Funktion. zum Beispiel das ganze Formularobjekt selbst .. (nicht ein guter Weg) – hB0

0
public void SetCalendarStartSafe(DateTime startDateSafe) 
{ 
    // wrong: 
    // startDateSafe = calendarStart.Value; 
    // right: 
    calendarStart.Value = startDateSafe; 
} 

Dort nur um diese beide tauschen. Das Ziel der Aufgabe ist auf der linken Seite.

+0

Versucht, dass vorgeschlagene Ansatz, aber der KalenderStart.Value wird irgendwie auf das aktuelle Datum/Uhrzeit (wenn Sie den Wert während des Debuggen ansehen) zurückgesetzt. Außerdem erhalte ich eine Fehlermeldung, die lautet: "Fehler beim Laden des Diagramms: Wert von '1/1/0001 12:00:00 Uhr' ist nicht gültig für 'Wert'. 'Wert' sollte zwischen 'MinDate' und ' MaxDate "." – jrubengb