2016-05-12 41 views
0

我已經做出的窗口1無法使用從文本框在窗口1取文本窗口中用戶可以使用2

MainWindow win1_obj = new MainWindow(); 

對象用它來訪問窗口1是Public

public int banks, banks_size, timer_time, threshold; 
變量

使用onClick事件將它們分配在窗口1

if (checkbox_enable_banks.IsChecked == true) 
     { 
      banks = int.Parse(txtbox_banks_numbers.Text); 
     } 
     if(checkbox_enable_size.IsChecked==true) 
     { 
      banks_size = int.Parse(txtbox_bank_size.Text); 
     } 
     if (checkbox_enable_time.IsChecked == true) 
     { 
      timer_time = int.Parse(txtbox_timer_time.Text); 
     } 
     if (checkbox_enable_threshold.IsChecked == true) 
     { 
      threshold = int.Parse(txtbox_power_threshold.Text); 
     } 
     else 
     { 
      threshold = 20; 
     } 

但是當AC從文本框的值與他們同在win1_obj窗口2 cessing他們用如下方法

if (win1_obj.timer_time > 0) 
     { 
      seconds = win1_obj.timer_time; 

     } 

label_threshold.Content = win1_obj.threshold +"%"; 

它只是沒有做任何事情,無論它分配給timer_time也不secondsthreshold vlue到label_threshold.Content

+0

設置的值是否到達調試器中的行,如果你把一個斷點? – Joe

+0

window2中的win1_obj是什麼?你的意思是它不是同一個對象,這可以解釋爲什麼沒有使用任何值。 –

+0

當您在代碼中調用'MainWindow win1_obj = new MainWindow();'時,您將創建一個新的'MainWindow'實例,並且根據此行的位置,這個實例可能與您所看到的不同屏幕。 – mcy

回答

0

您必須爲MainWindow中的屬性賦予值,例如您可以通過實例訪問window2中的值種手段

MainWindow win1_obj = new MainWindow(); 

記住new及牡丹對象的實例意味着新的存儲位置將被分配給特定的對象。如果你想訪問屬性,只需添加staticpublic static int banks;創建一個類並給予靜態屬性。

public class WindowClass 
{ 
    public static int banks; 
    //and other properties 

} 

,你可以得到,並直接與類名和屬性e.g

WindowClass.banks