2016-03-07 99 views
0

好吧,我有我的方式是一個問題,我想我失去了一些東西簡單在這裏,但只是我沒有看到它。綁定源的DataGridView格式問題

我在VB.NET,VS2012,實體6+,SQL數據庫工作。 我有2種形式。主窗體和子窗體。我沒有使用MDIParent/Child屬性。我正在做的是在主窗體上...我有一個面板,並且我添加了一個控件(新的子窗體到該面板)。所以當我最小化主窗體時,它最小化子窗體。我讀了一些地方的mdiParent /孩子的東西不是一個好的選擇,因爲它不再支持微軟。所以這個帶有子表單的面板是我的下一個選項......它運行良好,除了一件事外,所有的東西都能正確加載。在我的表單的初始加載,我的datagridview需要格式化,我有格式化我的網格的代碼。在加載時,它會觸及此代碼,對其進行格式化,但在完成加載時,它看起來像回到默認格式(基於單元格值的行高亮和現在的行標題編號)。當我點擊時,說一個按鈕或複選框或格式化到窗體上的網格,它格式化它非常好(顯示行高亮和行標題編號),擊中完全相同的代碼。我在這裏錯過了什麼?很顯然,我只是看不到它。

我的形式負載由得到一個數據表,設定該數據表至結合源(用於過濾使用),則設定該綁定源到datagridview.datasource。

補充說明,當我從面板中刪除子窗體,它不綁的主要形式,而只需創建一個新的自由浮動的形式表現出來......不正是因爲預期完全相同的代碼。

希望我提供所需的信息來了解我的問題!預先感謝任何幫助!

回答

0

好,對其他任何人遇到這個問題......我有你一個答案。對不起,我沒有在上面發佈代碼,我真的不認爲這會有所幫助,但顯然我錯了。一切行動上面是正確的,但,這是我在做什麼:

Public sub showForm() 
dim frm as new Form 
frm.TopLevel = False 

for each C as Control in ParentForm.Controls 
if(TypeOf C Is Panel) Then 
    If C.Name = "Specific Panel Name" Then 
     C.Controls.Add(frm) 
     exit for 
    End IF 
End IF 
next 


frm.Show() 

end Sub 

發生了什麼事情了,我創建了一個默認的形式...它添加到控制,則表現形式和格式...但它仍然顯示默認的形式INSIDE面板控制,即使我格式化它正確。我發現了什麼是....我需要切換的代碼爲它像這樣

Public sub showForm() 
dim frm as new Form 
frm.TopLevel = False 


frm.Show() 

for each C as Control in ParentForm.Controls 
if(TypeOf C Is Panel) Then 
    If C.Name = "Specific Panel Name" Then 
     C.Controls.Add(frm) 
     exit for 
    End IF 
End IF 
next 

end Sub 

現在確實所有的格式第一... ...然後將其添加到面板正常工作。希望大家都覺得這很有幫助,因爲我在這種特殊情況下失去了一天的工作。