Also ich versuche, eine Methode von einem Timer auszuführen das Problem ist, dass jedes Mal ich die Methode aufrufen und eine Zeichenfolge als Argument übergeben, automatisch die Zeichenfolge auf NULL gesetzt und das ist seltsam, gibt es eine Lösung oder etwas, hier ist ein Code, wenn Sie wünschen, betrachten esTimer keine Kontrolle Textbox Daten
private void timer1_Tick(object sender, EventArgs e)
{
int currentHour = FixTime(DateTime.Now.ToString("hh tt"));
int currentMinute = FixTime(DateTime.Now.ToString("mm tt"));
int currentSeconds = FixTime(DateTime.Now.ToString("ss tt"));
string currentTT = DateTime.Now.ToString("tt");
int userHour = Settings.Default.hour;
int userMinute = Settings.Default.minutes;
int userSeconds = Settings.Default.seconds;
string userTT = Settings.Default.TT;
if (currentHour == userHour && currentMinute == userMinute &&
currentSeconds == userSeconds && currentTT == userTT)
{
MakeThePost(postTextBox.Text); // the postTextBox.Text field automatically is set to null
}
}
private void MakeThePost(string data)
{
string text = data;
if (!String.IsNullOrEmpty(text))
{
fb.Post("me/feed", new { message = text });
}
else
MessageBox.Show("Nothing to post on facebook", "Field is empty",MessageBoxButtons.OK, MessageBoxIcon.Error);
}
UPDATE: So aparently das Problem ist nicht in den Timer oder sogar im MakeThePost das eigentliche Problem ist in einer anderen Form iam angezeigt werden versuchen, Wenn es angezeigt wird, erstellt der Konstruktor ein neues Form1-Objekt, warum mache ich das ?, weil ich Zugriff auf die Steuerelemente im Hauptformular haben möchte, aber wenn ich den Form1-Konstruktor ausführen, um ein neues Objekt zu erstellen, das Form1 postTextBox-Steuerelement beendet das Aktualisieren seiner Text-Eigenschaft, gibt es also eine andere Möglichkeit, auf Hauptformularsteuerelemente zuzugreifen, ohne ein Objekt zu initialisieren?
Was passiert in 'MakeThePost()' Methode? Und was ist der Wert von 'postTextBox.Text', wenn es in die Funktion übergeben wird? (das spätere kann mit einem Breakpoint verifiziert werden) – heltonbiker
Welche 'Timer'-Klasse benutzen Sie genau? –
@heltonbiker Der Wert wird vom Benutzer generiert und ich fülle immer mit Text, bevor es dorthin kommt, aber es wird automatisch auf Null gesetzt, wenn es den Timer erreicht, und das macht die MakeThePost() Methode: private void MakeThePost (string data) { string text = data; if (! String.IsNullOrEmpty (text)) { fb.Post ("ich/feed", neu {message = text}); } } – edo