在加载表单时显示值

时间:2010-07-31 06:49:48

标签: c# winforms desktop-application

大家好我拥有一个带有treeview控件的主窗体,每个节点下都会显示一组文件。如果我将鼠标悬停在该节点上,我将使用以下代码

读取文本文件中存在的值
 private void treeViewACH_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
    {
        string strFile = string.Empty;
        System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
        messageBoxCS.AppendFormat(" {0}", e.Node);
        strFile = messageBoxCS.ToString().Substring(11);
        strFilePath = Directory.GetCurrentDirectory();
        strFilePath = Directory.GetParent(strFilePath).ToString();
        strFilePath = Directory.GetParent(strFilePath).ToString();
        strFilePath = strFilePath + "\\ACH" + "\\" + strFile;


        if ((File.Exists(strFilePath)))
        {
            StreamReader sr = new StreamReader(strFilePath);
            StringComparison compareType = StringComparison.InvariantCultureIgnoreCase;
            string fileName = Path.GetFileNameWithoutExtension(strFilePath);
            string extension = Path.GetExtension(strFilePath);
            if (fileName.StartsWith("FileHeader", compareType)
                && extension.Equals(".txt", compareType))
            {
                string s = sr.ReadToEnd();
                StringBuilder sb = new StringBuilder();
                //sb.Append("RecordTypeCode\tPriorityCode");
                //sb.Append("\n");
                //sb.Append("--------------------------------------------------");
                //sb.Append("\n");
                objFile.ReferenceTypeCode = s.Substring(0, 1);
                sb.Append(objFile.ReferenceTypeCode);
                string PriorCode = s.Substring(1, 2);
                sb.Append(PriorCode);
                objFile.getValues(sb.ToString());
                frmTemp frmtemp = new frmTemp();
                frmtemp.Show();

            }
        }

现在我想将值放在表单加载的每个文本框中。但由于它是一种不同的形式,我无法访问业务层的值

我在表单加载

上编码了这样的代码
         BL.FileHeader objFile = new FileHeader();
         private void frmTemp_Load(object sender, EventArgs e)
    {
        textBox1.Text = objFile.ReferenceTypeCode;
    }

但是我无法在任何帮助下显示值..

2 个答案:

答案 0 :(得分:1)

为您要显示的每个值的frmTemp类添加一个属性。在NodeMouseHover处理程序中,在创建表单实例后立即为这些属性赋值。然后,在frmTemp_Load处理程序中,将这些属性的值分配给TextBox控件。

答案 1 :(得分:0)

通过以下

得到答案
           frmTemp frmtmp = new frmTemp(strFileHeader);
            frmtmp.Show();

      public frmTemp(string str)
    {
        InitializeComponent();
        if (str.StartsWith("1"))
        {
            this.textBox1.Text = str.Substring(0, 1);
        }
        else if (str.StartsWith("5"))
        {
            this.textBox1.Text = str.Substring(0, 1);
            this.textBox2.Text = str.Substring(4, 16);
        }
    }