2013-09-01 198 views
2

試着做下一步 - 我想檢查一些信息是否已經存在,如果是csv文件,如果是的話 - 打開帶標籤的表格,並把文件中的信息放到 代碼是下一個:爲什麼element.Text =不工作

public void getEventTime(string filePath, string currDate, string currentDateTimeHM) 
    { 
     //reading the *.csv file and convert to the array of data 
     FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
     StreamReader sr = new StreamReader(fs); 

     //create array for getting any vlaue from string 
     string[] arrOfData = sr.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
     sr.Close(); 

     List<string> lines = new List<string>(); 
     bool status=false;//variable for showing form if event exist 

     foreach (var l in arrOfData) 
     { 
      if (l.Contains(currDate) && l.Contains(currentDateTimeHM)) 
      { 
       string[] temp = l.Split(',').Take(5).ToArray(); 
       notLabel.Text = temp[1].ToString(); 
       status = true; 
      } 
     } 
     if (status) 
     { 
      //show Notification Form 
      Form NotificationForm = new Notification(); 
      NotificationForm.Visible = true; 
     } 
    } 

一切完美的作品 - 如果信息存在 - 新形式打開,但notLabel.Text = temp[0].ToString();這部分有什麼回報。在調試過程中,我得到了下一個 enter image description here

意味着代碼是正確的,但對我來說,奇怪的原因導致程序 - 沒有這個文本。 我犯了什麼錯誤?

下面表格標籤 enter image description here

檢查

enter image description here

幾排從文件NotificationDesigner.Form.cs

 this.notLabel.AutoSize = true; 
     this.notLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); 
     this.notLabel.Location = new System.Drawing.Point(12, 22); 
     this.notLabel.Name = "notLabel"; 
     this.notLabel.Size = new System.Drawing.Size(34, 13); 
     this.notLabel.TabIndex = 0; 
     this.notLabel.Text = "label"; 
+0

您是在設計器還是編程添加標籤? – keyboardP

+0

我手動添加標籤到disigner窗體,名稱 - notLabel – gbk

回答

2

你在哪裏調用方法getEventTime,什麼是notLabel

如果方法getEventTime被調用,並設置notLabel.Text但之後的文本再次被設置爲string.Empty有問題,所以你應該每一個變化可能搜索或調試到notLabel.Text

你確定它是notLabel它顯示在窗體中嗎?你可以通過註冊到mouseDown事件檢查看看,當你點擊標籤

一件事的叫法,你行後添加break;

status = true; 

去設計,然後按標籤,按F4鍵和搜索name財產,我打賭它不是notLabel

enter image description here

個編輯

我想我發現那位您的問題

糾正我,如果我錯了,但此行

if (status) 
    { 
     //show Notification Form 
     Form NotificationForm = new Notification(); 
     NotificationForm.Visible = true; 
    } 
更改文本後

正在發生......當你的意思是:

public void getEventTime(string filePath, string currDate, string currentDateTimeHM) 
{ 
    Form NotificationForm = new Notification(); 
    //reading the *.csv file and convert to the array of data 
    FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
    StreamReader sr = new StreamReader(fs); 

    //create array for getting any vlaue from string 
    string[] arrOfData = sr.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
    sr.Close(); 

    List<string> lines = new List<string>(); 
    bool status=false;//variable for showing form if event exist 

    foreach (var l in arrOfData) 
    { 
     if (l.Contains(currDate) && l.Contains(currentDateTimeHM)) 
     { 
      string[] temp = l.Split(',').Take(5).ToArray(); 
      NotificationForm.NotText = temp[1].ToString(); 
      status = true; 
     } 
    } 
    if (status) 
    { 
     //show Notification Form 

     NotificationForm.Visible = true; 
    } 
} 

,並在申報書做

public string NotText 
    { 
    set { notLabel.Text = value; } 
    } 
+0

'get event'我在主窗體加載'eventViewer中調用。getEventTime(FilePath,currentDateTimeD,currentDateTimeHM);'notLabel - 它是通知標籤意味着 – gbk

+0

我如何搜索notLabel.text的每個變化?只使用調試?在我使用它的代碼中沒有任何額外的地方。也許問題是因爲我在代碼的一部分中做了一些變化,但在另一部分中調用了窗口?並在呼叫窗口這個標籤變爲空? – gbk

+0

@Kirill試試這個:製作一個按鈕,當你按下按鈕,你調用getEventTime,並告訴我,如果那工作 –