Exporting Web Services (C# / netframework)
Note
This demo is available in your FlexCel installation at <FlexCel Install Folder>\samples\csharp\VS2022\netframework\20.Reports\27.Exporting Web Services and also at https://github.com/tmssoftware/TMS-FlexCel.NET-demos/tree/master/csharp/VS2022/netframework/Modules/20.Reports/27.Exporting Web Services
Overview
A demo that accesses the NOAA Meteorological web service and returns an Excel file with the forecast. Just in case you do not have an Internet connection available, some sample data is included to work offline too.
Concepts
How to export the data on a Web Service to Excel or PDF.
Files
AssemblyInfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("(c) 2002 - 2024 TMS Software")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("7.21.0.0")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
// (*) If no key is specified, the assembly is not signed.
// (*) KeyName refers to a key that has been installed in the Crypto Service
// Provider (CSP) on your machine. KeyFile refers to a file which contains
// a key.
// (*) If the KeyFile and the KeyName values are both specified, the
// following processing occurs:
// (1) If the KeyName can be found in the CSP, that key is used.
// (2) If the KeyName does not exist and the KeyFile does exist, the key
// in the KeyFile is installed into the CSP and used.
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
// When specifying the KeyFile, the location of the KeyFile should be
// relative to the project output directory which is
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
// located in the project directory, you would specify the AssemblyKeyFile
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
// documentation for more information on this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
Form1.cs
/*This program is inspired on the progam by Mikhail Arkhipov
* at http://blogs.msdn.com/mikhailarkhipov/archive/2004/08/12/213963.aspx
* Thanks!
*/
/* UPDATE: This was patched with the info on
* http://weblogs.asp.net/jan/archive/2004/01/28/63771.aspx
* to make it work.
*
* Thanks again...
*
* UPDATE 2!
* The NOAA broke the service again, and it has not fixed it for more than a year.
* I give up. We will use http://www.webservicex.net/WeatherForecast.asmx instead.
* The code for NOAA is still there on the SetupNOAA method, just not used so you can see it (and try it if it ever starts working again)
*
* UPDATE 3!
* Now WebserviceX is not working, going back to NOAA. As you can see, it isn't very trustable that a webservice will be there in the
* future, so this demo might not work in online mode when you try it. But you can always look at in in offline mode.
* */
using System;
using System.Drawing;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using System.Xml;
using System.Net;
using System.Threading;
using FlexCel.Core;
using FlexCel.XlsAdapter;
using FlexCel.Report;
using FlexCel.Render;
using ExportingWebServices.gov.weather.www;
using System.Globalization;
namespace ExportingWebServices
{
/// <summary>
/// An example that will read data from a webservice.
/// </summary>
public partial class mainForm: System.Windows.Forms.Form
{
Dictionary<string, LatLong> Cities = new Dictionary<string, LatLong>(StringComparer.CurrentCultureIgnoreCase);
public mainForm()
{
InitializeComponent();
LoadCities();
}
private void LoadCities()
{
XmlDocument xml = new XmlDocument();
{
string DataPath = Path.Combine(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), ".."), "..") + Path.DirectorySeparatorChar;
xml.Load(Path.Combine(DataPath, "cities.xml"));
XmlNodeList latLonList = xml.GetElementsByTagName("latLonList");
XmlNodeList cityNameList = xml.GetElementsByTagName("cityNameList");
if (latLonList.Count != 1) throw new Exception("Invalid city list");
if (cityNameList.Count != 1) throw new Exception("Invalid city list");
string lats = latLonList.Item(0).InnerText;
string cits = cityNameList.Item(0).InnerText;
string[] latsParsed = lats.Split(' ');
string[] citsParsed = cits.Split('|');
if (citsParsed.Length != latsParsed.Length) throw new Exception("Invalid city list");
edcity.BeginUpdate();
try
{
for (int i = 0; i < citsParsed.Length; i++)
{
string[] ll = latsParsed[i].Split(',');
if (ll.Length != 2) throw new Exception("Invalid city list");
Cities.Add(citsParsed[i], new LatLong(Convert.ToDecimal(ll[0], CultureInfo.InvariantCulture), Convert.ToDecimal(ll[1], CultureInfo.InvariantCulture)));
edcity.Items.Add(citsParsed[i]);
}
edcity.Text = "New York,NY";
}
finally
{
edcity.EndUpdate();
}
}
}
private void Export(SaveFileDialog SaveDialog, bool ToPdf)
{
try
{
string DataPath = Path.Combine(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), ".."), "..") + Path.DirectorySeparatorChar;
//We will use a thread to connect, to avoid "freezing" the GUI
WebConnectThread MyWebConnect = new WebConnectThread(reportStart, edcity.Text, DataPath, cbOffline.Checked, Cities);
Thread WebConnect = new Thread(new ThreadStart(MyWebConnect.SetupNOAA));
WebConnect.Start();
using (ProgressDialog Pg = new ProgressDialog())
{
Pg.ShowProgress(WebConnect);
if (MyWebConnect != null && MyWebConnect.MainException != null)
{
throw MyWebConnect.MainException;
}
}
if (SaveDialog.ShowDialog() == DialogResult.OK)
{
if (ToPdf)
{
XlsFile xls = new XlsFile();
xls.Open(DataPath + "Exporting Web Services.template.xls");
reportStart.Run(xls);
using (FlexCelPdfExport PdfExport = new FlexCelPdfExport(xls, true))
{
PdfExport.Export(SaveDialog.FileName);
}
}
else
{
reportStart.Run(DataPath + "Exporting Web Services.template.xls", SaveDialog.FileName);
}
if (MessageBox.Show("Do you want to open the generated file?", "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
using (Process p = new Process())
{
p.StartInfo.FileName = SaveDialog.FileName;
p.StartInfo.UseShellExecute = true;
p.Start();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
Close();
}
private void btnExportPdf_Click(object sender, System.EventArgs e)
{
Export(saveFileDialogPdf, true);
}
private void btnExportXls_Click(object sender, System.EventArgs e)
{
Export(saveFileDialogXls, false);
}
private void edcity_KeyDown(object sender, KeyEventArgs e)
{
edcity.DroppedDown = false;
}
}
struct LatLong
{
public decimal Latitude;
public decimal Longitude;
public LatLong(decimal aLatitude, decimal aLongitude)
{
Latitude = aLatitude;
Longitude = aLongitude;
}
}
class WebConnectThread
{
string CityName;
string DataPath;
bool UseOfflineData;
Dictionary<string, LatLong> Cities;
FlexCelReport ReportStart;
private Exception FMainException;
public WebConnectThread(FlexCelReport aReportStart, string aCityName, string aDataPath, bool aUseOfflineData, Dictionary<string, LatLong> aCities)
{
CityName = aCityName;
DataPath = aDataPath;
UseOfflineData = aUseOfflineData;
ReportStart = aReportStart;
Cities = aCities;
}
public void SetupNOAA()
{
try
{
SetupNOAA(ReportStart, CityName, DataPath, UseOfflineData, Cities);
}
catch (Exception ex)
{
FMainException = ex;
}
}
public static void SetupNOAA(FlexCelReport reportStart, string CityName, string DataPath, bool UseOfflineData, Dictionary<string, LatLong> Cities)
{
LatLong CityCoords;
GetCity(Cities, CityName, out CityCoords);
reportStart.SetValue("Date", DateTime.Now);
string forecasts;
DateTime dtStart = DateTime.Now;
if (UseOfflineData)
{
using (StreamReader fs = new StreamReader(Path.Combine(DataPath, "OfflineData.xml")))
{
forecasts = fs.ReadToEnd();
}
}
else
{
ndfdXML nd = new ndfdXML();
forecasts = nd.NDFDgen(CityCoords.Latitude, CityCoords.Longitude, productType.glance, dtStart, dtStart.AddDays(7), unitType.m, new weatherParametersType());
#if(SAVEOFFLINEDATA)
using (StreamWriter sw = new StreamWriter(Path.Combine(DataPath, "OfflineData.xml")))
{
sw.Write(forecasts);
}
#endif
}
if (String.IsNullOrEmpty(forecasts)) throw new Exception("Can't find the place " + CityName);
DataSet ds = new DataSet();
//Load the data into a dataset. On this web service, we cannot just call DataSet.ReadXml as the data is not on the correct format.
XmlDocument xmlDoc = new XmlDocument();
{
xmlDoc.LoadXml(forecasts);
XmlNodeList HighList = xmlDoc.SelectNodes("/dwml/data/parameters/temperature[@type='maximum']/value/text()");
XmlNodeList LowList = xmlDoc.SelectNodes("/dwml/data/parameters/temperature[@type='minimum']/value/text()");
XmlNodeList IconList = xmlDoc.SelectNodes("/dwml/data/parameters/conditions-icon/icon-link/text()");
DataTable WeatherTable = ds.Tables.Add("Weather");
WeatherTable.Columns.Add("Day", typeof(DateTime));
WeatherTable.Columns.Add("Low", typeof(double));
WeatherTable.Columns.Add("High", typeof(double));
WeatherTable.Columns.Add("Icon", typeof(byte[]));
for (int i = 0; i < Math.Min(Math.Min(HighList.Count, LowList.Count), IconList.Count); i++)
{
WeatherTable.Rows.Add(new object[]{
dtStart.AddDays(i),
Convert.ToDouble(LowList[i].Value),
Convert.ToDouble(HighList[i].Value),
LoadIcon(IconList[i].Value, UseOfflineData, DataPath)});
}
}
reportStart.AddTable(ds, TDisposeMode.DisposeAfterRun);
reportStart.SetValue("Latitude", CityCoords.Latitude);
reportStart.SetValue("Longitude", CityCoords.Longitude);
reportStart.SetValue("Place", CityName);
}
private static void GetCity(Dictionary<string, LatLong> Cities, string CityName, out LatLong CityCoords)
{
if (!Cities.TryGetValue(CityName, out CityCoords)) throw new Exception("Can't find the city " + CityName);
}
internal Exception MainException
{
get
{
return FMainException;
}
}
internal static byte[] LoadIcon(string url, bool useOfflineData, string dataPath)
{
if (url == null || url.Length == 0)
{
return null; //no icon for this image.
}
if (useOfflineData)
{
Uri u = new Uri(url);
return LoadFileIcon(Path.Combine(dataPath, u.Segments[u.Segments.Length - 1]));
}
else
{
#if (SAVEOFFLINEDATA)
Uri u = new Uri(url);
byte[] IconData = LoadWebIcon(url);
using (FileStream fs = new FileStream(Path.Combine(dataPath, u.Segments[u.Segments.Length - 1]), FileMode.Create))
{
fs.Write(IconData, 0, IconData.Length);
}
#endif
return LoadWebIcon(url);
}
}
/// <summary>
/// On a real implementation this should be cached.
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
internal static byte[] LoadWebIcon(string url)
{
using (WebClient wc = new WebClient())
{
wc.Headers.Add("user-agent", "FlexCel Webservice Example");
return wc.DownloadData(url);
}
}
private static byte[] LoadFileIcon(string filename)
{
using (FileStream fs = new FileStream(filename, FileMode.Open))
{
byte[] Result = new byte[fs.Length];
fs.Read(Result, 0, Result.Length);
return Result;
}
}
}
}
Form1.Designer.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using System.Xml;
using System.Net;
using System.Threading;
using FlexCel.Core;
using FlexCel.XlsAdapter;
using FlexCel.Report;
using FlexCel.Render;
using ExportingWebServices.gov.weather.www;
namespace ExportingWebServices
{
public partial class mainForm: System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnExportXls = new System.Windows.Forms.Button();
this.saveFileDialogXls = new System.Windows.Forms.SaveFileDialog();
this.reportStart = new FlexCel.Report.FlexCelReport();
this.btnCancel = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.cbOffline = new System.Windows.Forms.CheckBox();
this.btnExportPdf = new System.Windows.Forms.Button();
this.saveFileDialogPdf = new System.Windows.Forms.SaveFileDialog();
this.edcity = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// btnExportXls
//
this.btnExportXls.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExportXls.BackColor = System.Drawing.Color.Green;
this.btnExportXls.ForeColor = System.Drawing.Color.White;
this.btnExportXls.Location = new System.Drawing.Point(16, 120);
this.btnExportXls.Name = "btnExportXls";
this.btnExportXls.Size = new System.Drawing.Size(112, 23);
this.btnExportXls.TabIndex = 0;
this.btnExportXls.Text = "Export to Excel";
this.btnExportXls.UseVisualStyleBackColor = false;
this.btnExportXls.Click += new System.EventHandler(this.btnExportXls_Click);
//
// saveFileDialogXls
//
this.saveFileDialogXls.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm|Excel 97/2003|*.xls|Excel 2007|*.xlsx;*.xlsm|All " +
"files|*.*";
this.saveFileDialogXls.RestoreDirectory = true;
//
// reportStart
//
this.reportStart.AllowOverwritingFiles = true;
this.reportStart.DeleteEmptyRanges = false;
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.ForeColor = System.Drawing.Color.White;
this.btnCancel.Location = new System.Drawing.Point(272, 120);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(112, 23);
this.btnCancel.TabIndex = 3;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = false;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// label3
//
this.label3.Location = new System.Drawing.Point(32, 19);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(40, 85);
this.label3.TabIndex = 8;
this.label3.Text = "City:";
//
// cbOffline
//
this.cbOffline.Checked = true;
this.cbOffline.CheckState = System.Windows.Forms.CheckState.Checked;
this.cbOffline.Location = new System.Drawing.Point(32, 80);
this.cbOffline.Name = "cbOffline";
this.cbOffline.Size = new System.Drawing.Size(352, 24);
this.cbOffline.TabIndex = 10;
this.cbOffline.Text = "Use offline data. (do not actually connect to the web service)";
//
// btnExportPdf
//
this.btnExportPdf.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExportPdf.BackColor = System.Drawing.Color.SteelBlue;
this.btnExportPdf.ForeColor = System.Drawing.Color.White;
this.btnExportPdf.Location = new System.Drawing.Point(144, 120);
this.btnExportPdf.Name = "btnExportPdf";
this.btnExportPdf.Size = new System.Drawing.Size(112, 23);
this.btnExportPdf.TabIndex = 11;
this.btnExportPdf.Text = "Export to Pdf";
this.btnExportPdf.UseVisualStyleBackColor = false;
this.btnExportPdf.Click += new System.EventHandler(this.btnExportPdf_Click);
//
// saveFileDialogPdf
//
this.saveFileDialogPdf.Filter = "Pdf Files|*.pdf";
this.saveFileDialogPdf.RestoreDirectory = true;
//
// edcity
//
this.edcity.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.edcity.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.edcity.FormattingEnabled = true;
this.edcity.Location = new System.Drawing.Point(78, 12);
this.edcity.MaxDropDownItems = 32;
this.edcity.Name = "edcity";
this.edcity.Size = new System.Drawing.Size(306, 21);
this.edcity.TabIndex = 12;
this.edcity.KeyDown += new System.Windows.Forms.KeyEventHandler(this.edcity_KeyDown);
//
// mainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(416, 157);
this.Controls.Add(this.edcity);
this.Controls.Add(this.btnExportPdf);
this.Controls.Add(this.cbOffline);
this.Controls.Add(this.label3);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnExportXls);
this.Name = "mainForm";
this.Text = "Exporting Web Services";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.CheckBox cbOffline;
private System.Windows.Forms.Button btnExportXls;
private System.Windows.Forms.Button btnExportPdf;
private System.Windows.Forms.SaveFileDialog saveFileDialogXls;
private System.Windows.Forms.SaveFileDialog saveFileDialogPdf;
private FlexCel.Report.FlexCelReport reportStart;
private ComboBox edcity;
}
}
Program.cs
using System;
using System.Windows.Forms;
namespace ExportingWebServices
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainForm());
}
}
}
ProgressDialog.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Threading;
using FlexCel.Render;
namespace ExportingWebServices
{
/// <summary>
/// A dialog box to show progress. This could be done with a BackgroundWorker, it was done this way for .NET 1.1 compatibility.
/// </summary>
public partial class ProgressDialog: System.Windows.Forms.Form
{
private System.Timers.Timer timer1;
public ProgressDialog()
{
InitializeComponent();
}
private DateTime StartTime;
private Thread RunningThread;
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
UpdateStatus();
}
public void ShowProgress(Thread aRunningThread)
{
RunningThread = aRunningThread;
if (!RunningThread.IsAlive) { DialogResult = DialogResult.OK; return; }
timer1.Enabled = true;
StartTime = DateTime.Now;
ShowDialog();
}
private void UpdateStatus()
{
TimeSpan ts = DateTime.Now - StartTime;
string hours;
if (ts.Hours == 0) hours = ""; else hours = ts.Hours.ToString("00") + ":";
statusBarPanelTime.Text = hours + ts.Minutes.ToString("00") + ":" + ts.Seconds.ToString("00");
if (!RunningThread.IsAlive) DialogResult = DialogResult.OK;
}
private void ProgressDialog_Closed(object sender, System.EventArgs e)
{
timer1.Enabled = false;
}
}
}
ProgressDialog.Designer.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Threading;
using FlexCel.Render;
namespace ExportingWebServices
{
public partial class ProgressDialog: System.Windows.Forms.Form
{
private System.Windows.Forms.StatusBar statusBar1;
private System.Windows.Forms.StatusBarPanel statusBarPanel1;
private System.Windows.Forms.StatusBarPanel statusBarPanelTime;
private System.Windows.Forms.Label labelCaption;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
this.statusBarPanelTime = new System.Windows.Forms.StatusBarPanel();
this.labelCaption = new System.Windows.Forms.Label();
this.timer1 = new System.Timers.Timer();
((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.statusBarPanelTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
this.SuspendLayout();
//
// statusBar1
//
this.statusBar1.Location = new System.Drawing.Point(0, 100);
this.statusBar1.Name = "statusBar1";
this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
this.statusBarPanel1,
this.statusBarPanelTime});
this.statusBar1.ShowPanels = true;
this.statusBar1.Size = new System.Drawing.Size(448, 22);
this.statusBar1.TabIndex = 1;
//
// statusBarPanel1
//
this.statusBarPanel1.BorderStyle = System.Windows.Forms.StatusBarPanelBorderStyle.None;
this.statusBarPanel1.Text = "Elapsed Time:";
this.statusBarPanel1.Width = 80;
//
// statusBarPanelTime
//
this.statusBarPanelTime.BorderStyle = System.Windows.Forms.StatusBarPanelBorderStyle.None;
this.statusBarPanelTime.Text = "0:00";
//
// labelCaption
//
this.labelCaption.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.labelCaption.Location = new System.Drawing.Point(16, 16);
this.labelCaption.Name = "labelCaption";
this.labelCaption.Size = new System.Drawing.Size(408, 16);
this.labelCaption.TabIndex = 2;
this.labelCaption.Text = "Connecting to Webservice...";
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.SynchronizingObject = this;
this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
//
// ProgressDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(448, 122);
this.Controls.Add(this.labelCaption);
this.Controls.Add(this.statusBar1);
this.Name = "ProgressDialog";
this.ShowInTaskbar = false;
this.Text = "Please wait...";
this.Closed += new System.EventHandler(this.ProgressDialog_Closed);
((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.statusBarPanelTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
this.ResumeLayout(false);
}
#endregion
}
}