2013-01-11 36 views
0

我搜索了關於我將如何管理這樣做有幾個小時,但沒有我發現有工作的解決方案......在錯誤另一類結果組合框使用選定值

我有幾個ComboBoxes的表單,我想抓取選定的值並在另一個類的方法中使用它。這些值將在過濾器中用作查詢數據庫的變量。當分配值時,我得到錯誤「非靜態字段,方法或屬性需要對象引用」。我試圖在另一個類中創建一個新的窗體實例,但是新的實例沒有我想要的ComboBox值?

我不太確定如何做到這一點。我嘗試了很多方法,但都失敗了。= /我是編程新手,所以我希望能得到任何幫助!

public static void LoadMainTable(ref DataTable mainGridTable) 
    { 

     //Loads entires into a data table 
     //FormMonitor FormMonitor = new FormMonitor(); 
     string bankBox = FormMonitor.ComboBox1.SelectedItem; 
     string theDate = FormMonitor.DateTimePicker.Value.ToString("yyyy-MM-dd"); 



     //Grabbed in the order they will be displayed 
     cmd.CommandText = String.Format("W.I.P."); 
     //Add variables for filters after figuring out how to do it 
     reader = cmd.ExecuteReader(); 


     //reads data into dmainGridTable 
     while (reader.Read()) 
     { 

      mainGridTable.Rows.Add(reader["column1"], reader["column2"], reader["column3"], reader["column4"].ToString(), 
            reader["column5"].ToString(), reader["column6"]); 
      //FormMonitor.file_ProgressUpdated(); //non-static error again, fix 
      connect.Close(); 
     } 
    } 

回答

0

如果您使用的參考信息,您可以使用任何控件的值表單的實例。您正在使用類名稱。

例:現在,我的winform項目使用MDI作爲主窗體。我有時需要我的表單上的MonthCalendar控件的選定值。我所做的是這種形式的訪問器,當我想獲得這些值時,我使用MdiParent來查找我的主窗體(一個MdiContainer),並且我找到了對包含MonthCalendar的窗體的引用。我打電話給我的訪問者。 (使用訪問器然後直接獲取控制值會更乾淨)

當然,如果您的程序完成不同,您可能需要找到另一個邏輯。但它是一個基地。

0

您需要將組合框的選定值傳入方法中。如果不工作,然後請張貼更多的代碼,所以我們可以正確地理解爲所發生的事情

public static void LoadMainTable(ref DataTable mainGridTable, string comboSelectedValue) 
     { 

      //Loads entires into a data table 
      //FormMonitor FormMonitor = new FormMonitor(); 
      string bankBox = FormMonitor.ComboBox1.SelectedItem; 
      string theDate = FormMonitor.DateTimePicker.Value.ToString("yyyy-MM-dd"); 



      //Grabbed in the order they will be displayed 
      cmd.CommandText = String.Format("W.I.P."); 
      //Add variables for filters after figuring out how to do it 
      reader = cmd.ExecuteReader(); 


      //reads data into dmainGridTable 
      while (reader.Read()) 
      { 

       mainGridTable.Rows.Add(reader["column1"], reader["column2"], reader["column3"], reader["column4"].ToString(), 
             reader["column5"].ToString(), reader["column6"]); 
       //FormMonitor.file_ProgressUpdated(); //non-static error again, fix 
       connect.Close(); 
      } 

}

相關問題