1

尝试下一步 - 我想检查某些信息是否已经存在,如果 csv 文件,如果是 - 打开带有标签的表单,然后从文件代码中放入此标签信息代码是下一个:

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();部分没有返回任何内容。在调试期间我得到了下一个 在此处输入图像描述

意味着代码是正确的但对我来说很奇怪的原因导致程序 - 没有这个文本。我在哪里犯了一些错误?

下面的表格带有标签 在此处输入图像描述

检查

在此处输入图像描述

文件 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";
4

1 回答 1

1

你在哪里调用该方法getEventTime,什么是notLabel.

如果getEventTime调用该方法并设置,notLabel.Text但之后再次将文本设置为string.Empty存在问题,因此您可能应该搜索或调试对notLabel.Text.

你确定它是notLabel表格中显示的吗?您可以通过注册mouseDown事件来检查它,并在单击标签时查看它是否被调用

还有一件事,break; 在你的行之后添加

status = true;

转到设计并按标签,按 F4 并搜索name属性,我敢打赌不是notLabel

在此处输入图像描述

编辑

我想我发现了你的问题

如果我错了,请纠正我,但这条线

    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; }
  }
于 2013-09-01T13:01:22.400 回答