如何将价值从一种形式转移到另一种形式?

时间:2013-07-07 18:01:17

标签: c# winforms class oop

好这是我想要的。我创建了一个Class

public class docname
    {
        private string doctname;

        public string Doctname
        {
            get { return doctname; }
            set { doctname = value; }
        }
    }

我已将其用于表格

public string name;
docname dc = new docname();
dc.Doctname = name;

当我检查另一种形式的值时,我得到一个空值。这背后的原因是什么?

我是C#的初学者。

2 个答案:

答案 0 :(得分:2)

好吧,在您的代码示例中,您实际上并没有为public string name变量分配任何内容,因此在为其分配值之前它将为null。假设这只是一个拼写错误,您需要确保两个表单都引用了DocName类的同一个实例(只在代码中创建一个new DocName(),然后将该引用传递给两种形式)。

Form myForm1    = new Form();
Form myForm2    = new Form();
DocName dn      = new DocName();
myForm1.docName = dn;
myForm2.docName = dn;
dn.DoctName     = "SomeDocumentName.txt";

MessageBox.Show(myForm1.docName.DoctName);  // "SomeDocumentName.txt"
MessageBox.Show(myForm2.docName.DoctName);  // "SomeDocumentName.txt"

因为只有一个DoctName类实例,所以该类的属性将保持不管哪个表单调用它。

答案 1 :(得分:0)

公共字符串名称; < --- name =“blah”; < ---额外代码 docname dc = new docname(); dc.Doctname = name;

好吧,根据你的代码,名为“name”的变量为null。