C# 在ActiveReports的详细信息部分隐藏单个控件

C# 在ActiveReports的详细信息部分隐藏单个控件,c#,vb.net,activereports,C#,Vb.net,Activereports,我会尽量简化情况 我有一个ActiveReports子报表,它有一个我使用FetchData事件填充的控件。有时我需要隐藏控件,如果它是空白的,或者在这种情况下,值是棉的,但应该显示聚酯纤维。问题是,当我隐藏一个控件时,它会在报告中的每个事件上隐藏该控件,而不仅仅是一个需要的实例。是不是我做错了什么 我在InitializeReport中定义控件 Material1 = DirectCast(Detail.Controls("Material1"), Label) Material2 = Dir

我会尽量简化情况

我有一个ActiveReports子报表,它有一个我使用FetchData事件填充的控件。有时我需要隐藏控件,如果它是空白的,或者在这种情况下,值是棉的,但应该显示聚酯纤维。问题是,当我隐藏一个控件时,它会在报告中的每个事件上隐藏该控件,而不仅仅是一个需要的实例。是不是我做错了什么

我在InitializeReport中定义控件

Material1 = DirectCast(Detail.Controls("Material1"), Label)
Material2 = DirectCast(Detail.Controls("Material2"), Label)
我在DataInitialize事件中为控件设置了Datafield

Fields.Add("Material1")
Fields.Add("Material2")
在FetchData事件中,我填充控件,因此三条记录会适当填充控件。没什么问题。如果第二条记录有一个值,那么就可以了。e、 g

第一条记录,FetchData事件的第一次调用

Fields("Material1").Value = "Polyester" 
Material1.Value = "Polyester"
Fields("Material2").value = "Wool"
Material2.Value = "Wool"
Fields("Material1").Value = "Cotton"
Material1.Value = "Cotton"
Fields("Material2").Value = "Wool"
Material2.Value = "Wool"
第二条记录,FetchData事件的第二次调用

Fields("Material1").Value = "Polyester" 
Material1.Value = "Polyester"
Fields("Material2").value = "Wool"
Material2.Value = "Wool"
Fields("Material1").Value = "Cotton"
Material1.Value = "Cotton"
Fields("Material2").Value = "Wool"
Material2.Value = "Wool"
如果我想隐藏第二个记录/控件,在填充控件后,我会在Details_Format事件中隐藏该控件,但是,它会隐藏所有三个材质控件,而不仅仅是一个单独的实例。我可能做错了什么

If Fields("Material1").value = "Cotton" then 
    Material1.Visible = false 
End if 
我希望羊毛在两个记录中出现两次,但棉花不出现在第二组中。我就是藏不住棉花控制器。我不想简单地空白材料1,因为我需要隐藏控件,以便向上移动控件并重新组织报表。在Material1旁边有一个标签,我将其和Material1一起隐藏


请使用VB或C#解决方案。

如果需要,您需要添加其他解决方案或替换为

Material1.Visible = Not (Fields("Material1").Value = "Cotton")
这样,它将根据值打开或关闭。在为整个控件的实例设置属性时,子报表只有一个实例,而不是每个细节都有一个实例


希望这能有所帮助。

也许对于每个启动新的控件实例?谢谢,即使在启用时也没有想到显式设置可见性。只是假设它一直开着,你只需要关掉它。