ReportViewer コントロールの画像 (緑色の回転するもの) を変更することはできますか?
現時点では、私はそれを隠して進行状況バーを重ねています (これは ASP コントロールではなく WinForms です)。
ありがとう:)
ReportViewer コントロールの画像 (緑色の回転するもの) を変更することはできますか?
現時点では、私はそれを隠して進行状況バーを重ねています (これは ASP コントロールではなく WinForms です)。
ありがとう:)
さて、あなたは私にこれを私の友人と一緒に挑戦させてくれました。しかし、私はこれを行う方法を理解しました。これを実現するために使用したコードは次のとおりです。
Private Sub CustomizeRV(ByVal ctrl As Control)
For Each c As Control In ctrl.Controls
If TypeOf c Is PictureBox Then
Dim pb As PictureBox = DirectCast(c, PictureBox)
pb.Image = YOURNEWIMAGEHERE
End If
If c.HasChildren Then
CustomizeRV(c)
End If
Next
End Sub
フォームの読み込みイベント中にこの関数を呼び出すと、読み込み中の画像が指定したものに再構成されます(関数をReportViewerコントロールに渡します)。この関数は、画像ボックスが見つかるまで再帰的に呼び出されます。ReportViewerコントロールには画像ボックスが1つしかないため、その特定の画像ボックスを見つけることを心配する必要はありません。
元のVB.NETコードを提供してくれたJonに再度感謝します...これがC#での彼の答えです...
private void CustomizeReportViewer(Control reportViewer)
{
foreach (Control c in reportViewer.Controls)
{
if (c.GetType() == typeof(PictureBox))
{
(c as PictureBox).ImageLocation = "C:\\Loading.gif";
return;
}
if (c.HasChildren)
CustomizeReportViewer(c);
}
}
これが ASP.NET ではなく WinForms 用であることに不満を持っている人のために、これは Web 用の同じソリューションです。
Private Sub CustomizeRV(ByVal ctrl As Control)
For Each c As Control In ctrl.Controls
If String.Compare(c.ID, "AsyncWait")=0 Then
DirectCast(c.Controls(0).Controls(0), Image).ImageUrl = ResolveUrl("~/images/PleaseWait.gif")
End If
If c.HasControls Then CustomizeRV(c)
Next
End Sub
この質問を共有してくれてありがとう。上記のvb.netコードをc#.netに変換し、画像の背景色を変更しただけです。
private void CustomizeRV(Control ReportViewCntr)
{
foreach (Control c in ReportViewCntr.Controls)
{
if ((string.Compare(c.ID, "AsyncWait") == 0))
{
Image i = (Image)c.Controls[0].Controls[0];
i.ImageUrl = ResolveUrl("~/Images/loading.gif");
//i.BackColor = System.Drawing.Color.Gray;
i.BackColor = System.Drawing.ColorTranslator.FromHtml("#e6e6e6");
}
if (c.HasControls())
{
CustomizeRV(c);
}
}
}