绑定源Datagridview格式问题

时间:2016-03-07 17:09:02

标签: vb.net datagridview bindingsource

好的,我的表单存在问题,我觉得我在这里缺少一些简单的东西,但是我没有看到它。

我在VB.NET,VS2012,Entity 6+,SQL数据库工作。 我有两种形式。主要表格和儿童表格。我没有使用MDIParent / Child属性。我正在做的是在主窗体上...我有一个面板,我添加一个控件(新的子窗体到该面板)。因此,当我最小化主要形式时,它最小化了儿童形式。我读了一些地方,mdiParent / child的东西不是一个好选择,因为它不再受微软支持了。所以带有子表单的这个面板是我的下一个选项...哪个效果很好,一切都正确加载,除了一件事。在我的表单的初始加载,我的datagridview需要格式化,我有代码格式化我的网格。在加载时,它会触发此代码,格式化它,但是当它完成加载时,它看起来像是恢复到默认格式(没有基于单元格值的行突出显示,现在是行标题编号)。当我单击,说一个按钮或复选框或对表单上的网格进行格式化的内容时,它将其格式化为完全正确(显示行突出显示和行标题编号),命中完全相同的代码。我在这里失踪了什么?显然我是,我只是看不到它。

我的表单加载包括获取数据表,将数据表设置为绑定源(用于过滤),然后将该绑定源设置为datagridview.datasource。

添加了备注,当我从面板中删除子表单而不将其绑定到主表单时,只需创建一个新的自由浮动表单并显示它...完全相同的代码完全按预期执行。

希望我提供了解我的问题所需的信息!在此先感谢您的帮助!

1 个答案:

答案 0 :(得分: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

它现在将所有格式设置为FIRST ...然后将其添加到面板中。希望你们都觉得这很有帮助,因为我在这种特殊情况下失去了一天的工作!

相关问题