我曾在一個點做這樣的事和我所做的就是創建的是定製用戶控件,在你的情況下,將包括一個組合框,一個充滿負載的產品,以及所有相關的控制,將在組合框的selectedindexchanged
事件中填寫。在您想要顯示此信息的主窗體上放置一個面板並將您的自定義用戶控件添加到panels.controls
集合中。
,因爲所有的功能基本被包含在用戶控件本身,你不應該遇到命名問題。
至於在用戶進行選擇時添加用戶控件,您可以調暗控件withevents
並將自定義事件附加到用戶控件並在主窗體中處理它。由於控件將在運行時添加,因此您需要使用AddHandler
調用來附加事件處理程序。
因此,要打破它,你將需要:
- 與所有你想要爲每個產品的控件自定義用戶的控制,並在代碼中的ID背後
- 事件上的自定義用戶控件告訴主窗體組合框有一個選定的值
- 主窗體上用於保存自定義用戶控件的面板
- 當在組合框。
如果要使用同一個按鈕與某個產品進行交互,可以在用戶控件背後的代碼中附加一個ID,並設置每次添加新的用戶控件時。這並不像我覺得我聽起來那麼困難,你實際上可以在面板控制集合上運行linq,並獲得滿足你指定條件的所有面板,然後從那裏做你想做的事。
關於你的第二個問題,我會假設你的用戶控件從什麼地方拉一個假的連接字符串。我會盡力追蹤發生的事情,並從那裏開始。除此之外的任何事情都只是一個WAG,並不能真正幫助你。
大,實際上是有道理的!我想我對控件如何與表單有關的誤解。我沒有意識到,一旦你添加一個控件到窗體的控件集合中,你可以覆蓋它最初存儲的變量而不用替換舊的控件。如果這是有道理的。謝謝! – 2012-04-25 18:43:26
它對我來說至少是這樣。但是,你可以在for循環中創建一個變量並將其添加到外部集合中,並且循環結束時,所有原始控件都將消失,但仍然可以在控制集合中引用它們。在像你這樣的情況下非常有幫助。 – 2012-04-25 18:46:29
這一點知識肯定會在未來幫助我很多。至於第二個問題,我已經搜索了它試圖找到數據庫的目錄,但無濟於事。連接字符串位置設置爲「\ DatabaseName.mdf」,這使我認爲它正在查找控制的.dll所在的數據庫。 – 2012-04-25 18:47:54