好的,我的表单存在问题,我觉得我在这里缺少一些简单的东西,但是我没有看到它。
我在VB.NET,VS2012,Entity 6+,SQL数据库工作。 我有两种形式。主要表格和儿童表格。我没有使用MDIParent / Child属性。我正在做的是在主窗体上...我有一个面板,我添加一个控件(新的子窗体到该面板)。因此,当我最小化主要形式时,它最小化了儿童形式。我读了一些地方,mdiParent / child的东西不是一个好选择,因为它不再受微软支持了。所以带有子表单的这个面板是我的下一个选项...哪个效果很好,一切都正确加载,除了一件事。在我的表单的初始加载,我的datagridview需要格式化,我有代码格式化我的网格。在加载时,它会触发此代码,格式化它,但是当它完成加载时,它看起来像是恢复到默认格式(没有基于单元格值的行突出显示,现在是行标题编号)。当我单击,说一个按钮或复选框或对表单上的网格进行格式化的内容时,它将其格式化为完全正确(显示行突出显示和行标题编号),命中完全相同的代码。我在这里失踪了什么?显然我是,我只是看不到它。
我的表单加载包括获取数据表,将数据表设置为绑定源(用于过滤),然后将该绑定源设置为datagridview.datasource。
添加了备注,当我从面板中删除子表单而不将其绑定到主表单时,只需创建一个新的自由浮动表单并显示它...完全相同的代码完全按预期执行。
希望我提供了解我的问题所需的信息!在此先感谢您的帮助!
答案 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 ...然后将其添加到面板中。希望你们都觉得这很有帮助,因为我在这种特殊情况下失去了一天的工作!