2013-07-07 3 views
0

Ok Вот что я хочу. Я создал классКак передать значение из одной формы в другую?

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#.

+0

Когда вы проверяете значение в другой форме? Отвечая на какое событие? – Tarik

+0

Я использую loadevent для проверки значения, но он показывает мне null при отладке. –

+1

здесь имя не присваивает никакой ценности. поэтому он показывает как null. следующий случай находится в ур второй форме, если u создает новый экземпляр, а затем вы можете видеть более раннее значение. если вам нужно увидеть его во второй форме, тогда вам нужно сделать это как статический – DevT

ответ

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, свойство этого класса будет сохраняться независимо от того, какая форма вызова его.

+0

спасибо, что помогли –

0

общественное название строки; < --- name = "blah"; < --- дополнительный код docname dc = new docname(); dc.Doctname = name;

Ну, в соответствии с вашим кодом переменная с именем «имя» имеет значение NULL.

+0

вы можете объяснить, как это может мне помочь? –

+0

Согласно вашему коду, переменная «name» объявляется и не имеет значения. Вы должны присвоить значение для имени. Пример: name = "whatever"; В противном случае значение по умолчанию для имени равно null. – Tarik

Смежные вопросы