<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Γλώσσες προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/74/ShowForum.aspx</link><description>Τα πρώτα βήματα στις γλώσσες VB6, VB.NET, και C#</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53735.aspx</link><pubDate>Tue, 15 Sep 2009 17:41:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53735</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53735.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53735</wfw:commentRss><description>&lt;P&gt;Συγγνώμη, αλλά εδώ πλέον ζητάς να σου γράψω όλο τον κώδικα. Κοίταξες καθόλου το documentation του Progressbar ? Kοίταξες πως παίρνει τις τιμές? Ποιό property πρέπει να χρησιμοποιήσεις? &lt;/P&gt;
&lt;P&gt;Αν δεν προσπαθήσεις μόνος σου δεν υπάρχει περίπτωση να βγάλεις άκρη, ό,τι κώδικα και να σου δώσει κάποιος. &lt;/P&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53733.aspx</link><pubDate>Tue, 15 Sep 2009 06:15:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53733</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53733.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53733</wfw:commentRss><description>καταρχήν παναγιώτη ευχαριστώ πολύ. δουλευει το progressbar.&lt;br&gt;&lt;br&gt;απλά τώρα διαπίστωσα ότι έτσι το progressabar δεν αρχίζει να γεμίζει την στιγμή που πατάω το&amp;nbsp; button αλλα την στιγμή που εμφανίζετε η εικόνα, με αποτέλεσμα να γεμίζει  πολύ γρήγορα σχεδόν στιγμιαία.&lt;br&gt;Μήπως μπορεί να ρυθμιστεί ώστε να ξεκινάει να γεμίζει το progressbar όταν γίνετε κλικ στο button και να φτάνει στο 100% όταν φορτώσει/εμφανίσει την εικόνα?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53732.aspx</link><pubDate>Tue, 15 Sep 2009 06:04:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53732</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53732.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53732</wfw:commentRss><description>&lt;P&gt;Στη φόρμα έχω βάλει ένα textbox που λέγεται txtUrl. Αντί γι αυτό θα πρέπει να βάλεις το URL που θέλεις να χρησιμοποιήσεις, π.χ.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;client.DownloadDataAsync(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Uri(@"&lt;A href="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World"&gt;http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World&lt;/A&gt;"))&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53731.aspx</link><pubDate>Tue, 15 Sep 2009 06:00:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53731</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53731.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53731</wfw:commentRss><description>ok τώρα δεν μου βγάζει τέτοιο πρόβλημα. αλλά δεν καταλαβαίνω κατι στον κώδικα που για να τρέξει μάλλον πρέπει να το αλλάξω.&lt;br&gt;στην γραμμη &lt;br&gt;&lt;pre&gt;&lt;span style="background-color:transparent;font-family:Courier New;color:black;font-size:11px;font-weight:normal;"&gt;client.DownloadDataAsync(&lt;span style="background-color:transparent;font-family:Courier New;color:blue;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; Uri(txtUrl.Text))&lt;br&gt;&lt;br&gt;το αντικείμενο txtUrl.Text πιο είναι? τι πρέπει να βάλω στην παρένθεση???&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53730.aspx</link><pubDate>Tue, 15 Sep 2009 05:49:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53730</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53730.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53730</wfw:commentRss><description>μήπως χρειάζετε η προσθήκη του &lt;br&gt;using System.Linq;&lt;br&gt;&lt;br&gt;στο δικό μου το project το προσθέτω αλλά δεν το αναγνωρίζει&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53729.aspx</link><pubDate>Tue, 15 Sep 2009 05:46:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53729</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53729.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53729</wfw:commentRss><description>&lt;P&gt;Μήπως χρησιμοποιείς Visual Studio 2005? Η παραπάνω σύνταξη δουλεύει με το 2008. Με το 2005 θα πρέπει να φτιάξεις ένα event handler για καθένα από τα events. Ο κώδικας θα πρέπει να γίνει:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; partial &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; Form1 : Form
    {
        WebClient client &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; WebClient();

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValueDelegate(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct);
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValue(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct)
		{
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// InvokeRequired required compares the thread ID of the&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// calling thread to the thread ID of the creating thread.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// If these threads are different, it returns true.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.InvokeRequired)
			{	
				Delegate d &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; SetValueDelegate(SetValue);
				&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.Invoke(d, &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt;[] { pct });
			}
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;else&lt;/SPAN&gt;
			{
			    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; pct;
			}
		}

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetImageDelegate(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;byte&lt;/SPAN&gt;[] imageData);
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetImage(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;byte&lt;/SPAN&gt;[] imageData)
        {
            pictureBox1.Image &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; Image.FromStream(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; MemoryStream(imageData));
        }


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; Form1()
        {
            InitializeComponent();
            client.DownloadProgressChanged += &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
            client.DownloadDataCompleted += &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; DownloadDataCompletedEventHandler(client_DownloadDataCompleted);
            client.Credentials &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; CredentialCache.DefaultCredentials;

        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; client_DownloadDataCompleted(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, DownloadDataCompletedEventArgs e)
        {
            SetImage(e.Result);
        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; client_DownloadProgressChanged(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, DownloadProgressChangedEventArgs e)
        {
            SetValue(e.ProgressPercentage);
        }


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; btnGet_Click(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)
         {
            progressBar1.Minimum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            progressBar1.Maximum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 100;
            progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            client.DownloadDataAsync(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Uri(txtUrl.Text));	
        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; Form1_Load(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)
        {

        }
    }&lt;/SPAN&gt;&lt;/PRE&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53728.aspx</link><pubDate>Tue, 15 Sep 2009 04:41:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53728</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53728.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53728</wfw:commentRss><description>Παναγιώτη thanks και ναι πολύ καλά κατάλαβες τι θέλω να κάνω&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br&gt;&lt;br&gt;Νομίζω τον ψιλοκατάλαβα τον κώδικα τι κάνει μόνο που όταν πάω να τον τρέξω πειραματικά και να δώ τι γίνετε μου βγάζει πρόβλημα στο παρακάτω κομμάτι:&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;span style="background-color:transparent;font-family:Courier New;color:black;font-size:11px;font-weight:normal;"&gt;client.DownloadProgressChanged+= (c, args) =&amp;gt; SetValue(args.ProgressPercentage);&lt;br&gt;client.DownloadDataCompleted += (c, args) =&amp;gt; SetImage(args.Result);&lt;br&gt;client.Credentials &lt;span style="background-color:transparent;font-family:Courier New;color:red;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; CredentialCache.DefaultCredentials;&lt;br&gt;&lt;br&gt;&lt;br&gt;μου λέει πως είναι invalid σαν expression οι παρενθέσεις και τα , και ότι χρειάζετε ;&lt;br&gt;δεν αναγνωρίζει την σύνταξη αυτού του κομματιού του κώδικα δλδ. πρέπει να προσθέσω κάτι ακόμα???&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53727.aspx</link><pubDate>Tue, 15 Sep 2009 04:27:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53727</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53727.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53727</wfw:commentRss><description>&lt;P&gt;Μόλις συνειδητοποίησα τί έγραψα. Αφού μιλάω για image και μνήμη, γιατί γράφω στο σκληρό? Αντί γι αυτό πρόσθεσα ένα PictureBox στη φόρμα και στην DownloadComplete δείχνω την εικόνα.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Collections.Generic;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.ComponentModel;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Data;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Drawing;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.IO;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Linq;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Net;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Text;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Windows.Forms;

&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;namespace&lt;/SPAN&gt; WindowsFormsApplication1
{
    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; partial &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; Form1 : Form
    {
        WebClient client &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; WebClient();

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValueDelegate(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct);
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValue(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct)
		{
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// InvokeRequired required compares the thread ID of the&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// calling thread to the thread ID of the creating thread.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// If these threads are different, it returns true.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.InvokeRequired)
			{	
				Delegate d &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; SetValueDelegate(SetValue);
				&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.Invoke(d, &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt;[] { pct });
			}
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;else&lt;/SPAN&gt;
			{
			    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; pct;
			}
		}

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetImageDelegate(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;byte&lt;/SPAN&gt;[] imageData);
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetImage(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;byte&lt;/SPAN&gt;[] imageData)
        {
            pictureBox1.Image &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; Image.FromStream(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; MemoryStream(imageData));
        }


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;string&lt;/SPAN&gt; targetFile;

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; Form1()
        {
            InitializeComponent();
            client.DownloadProgressChanged+= (c, args) =&amp;gt; SetValue(args.ProgressPercentage);
            client.DownloadDataCompleted += (c, args) =&amp;gt; SetImage(args.Result);
            client.Credentials &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; CredentialCache.DefaultCredentials;

        }


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; btnGet_Click(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)
         {
            progressBar1.Minimum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            progressBar1.Maximum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 100;
            progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            targetFile &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; txtFile.Text;
            client.DownloadDataAsync(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Uri(txtUrl.Text));	
        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; Form1_Load(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)
        {

        }
    }
}&lt;/SPAN&gt;&lt;/PRE&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53726.aspx</link><pubDate>Tue, 15 Sep 2009 04:17:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53726</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53726.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53726</wfw:commentRss><description>&lt;P&gt;Βρήκα το χρόνο και έφτιαξα και το ProgressBar. Έφτιαξα μία φόρμα με δύο textbox, το txtUrl Και το txtFile . Πατώντας το κουμπί btnGet τραβάω ασύγχρονα τα data με την DownloadDataAsync. Για να δείξω τις αλλαγές στο progress bar πιάνω το event DownloadProgressChanged. Επειδή το event όμως εκτελείται στο thread που έχει δημιουργήσει η DownloadDataAsync, δεν μπορώ να αλλάξ απευθείας το progressBar1.Value. Αντί γι αυτό, έχω φτιάξει μία μέθοδο η οποία χρησιμοποιεί αυτά που λέει ο Μάνος για να καλέσει την .Value στο σωστό thread :&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; partial &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; Form1 : Form
    {
        WebClient client &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; WebClient();

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValueDelegate(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct);
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; SetValue(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;int&lt;/SPAN&gt; pct)
		{
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// InvokeRequired required compares the thread ID of the&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// calling thread to the thread ID of the creating thread.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// If these threads are different, it returns true.&lt;/SPAN&gt;
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.InvokeRequired)
			{	
				Delegate d &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; SetValueDelegate(SetValue);
				&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.Invoke(d, &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt;[] { pct });
			}
			&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;else&lt;/SPAN&gt;
			{
			    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;this&lt;/SPAN&gt;.progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; pct;
			}
		}


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;string&lt;/SPAN&gt; targetFile;

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; Form1()
        {
            InitializeComponent();
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Handle the DownloadProgressChanged and update the progress bar&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;            client.DownloadProgressChanged+= (c, args) =&amp;gt; SetValue(args.ProgressPercentage);
	&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;// When finished, write all the data to a file&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;            client.DownloadDataCompleted += (c, args) =&amp;gt; File.WriteAllBytes(targetFile, args.Result);
            client.Credentials &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; CredentialCache.DefaultCredentials;

        }


        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; btnGet_Click(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, EventArgs e)
         {
            progressBar1.Minimum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            progressBar1.Maximum &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 100;
            progressBar1.Value &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; 0;
            targetFile &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; txtFile.Text;
            client.DownloadDataAsync(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Uri(txtUrl.Text));	
        }

           }&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Παραπάνω βαρέθηκα ελαφρώς να φτιάξω νέα μέθοδο για το DownloadProgressChanged και το DownloadDataCompleted event και χρησιμοποίησα lamda functions που περιέχουν την ίδια γραμμή που θα έγραφα και σε ένα event handler.&lt;/P&gt;
&lt;P&gt;Παραπάνω χρησιμοποίησα την DownloadData γιατί υποψιάζομαι ότι ο DUDE θέλει να χρησιμοποιήσει το Google Chart API για να τραβήξει εικόνες chart. Η DownloadFile σώζει τα αποτελέσματα στο σκληρό ενώ η DownloadData σου τα αφήνει στη μνήμη οπότε μπορείς να τα χρησιμοποιήσεις ή να τα δείξεις απευθείας, χωρίς να τα σώσεις πρώτα στο σκληρό.&lt;/P&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53725.aspx</link><pubDate>Tue, 15 Sep 2009 03:31:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53725</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53725.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53725</wfw:commentRss><description>Ευχαριστώ πολύ για την ανταπόκριση. Θα το παλέψω. πιστεύω κάτι θα βγει&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;thanks&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53724.aspx</link><pubDate>Tue, 15 Sep 2009 02:16:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53724</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53724.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53724</wfw:commentRss><description>&lt;P&gt;Πρίν από αρκετόόόό καιρό είχα γράψει ένα σχετικό άρθρο εδώ &lt;A href="http://www.dotnetzone.gr/cs/blogs/mkelaiditis/pages/10156.aspx"&gt;http://www.dotnetzone.gr/cs/blogs/mkelaiditis/pages/10156.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Είναι πριν το Visual Studio 2005 όπερ σημαίνει ότι δεν έχει BackgroundWorker. Ωστόσο, ο BakckgroundWorker δεν είναι τίποτε άλλο παρά&amp;nbsp;κώδικας σαν κι αυτόν που αναφέρεται στο άρθρο σε μορφή component. Αν καταλάβεις λοιπόν το άρθρο, έχεις καταλάβει και τις ασύγχρονες διαδικασίες και θα σου είναι πολύ εύκολο να χρησιμοποιήσεις τον BackgroundWorker. &lt;/P&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53720.aspx</link><pubDate>Tue, 15 Sep 2009 01:05:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53720</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53720.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53720</wfw:commentRss><description>&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;1) αυτο που ειπα το εχω κανει γινεται αλλα δεν τρελαίνομαι κι ολας ως ιδεα.(λεω για το tranfsered byteς)&lt;P&gt;2) η κλαση my.network ειναι οτι ποιο "απλο" μπορω να σκεφτω (και &lt;STRONG&gt;ΔΕΝ&lt;/STRONG&gt; κολαει το progress &lt;STRONG&gt;never απλα ειναι σαν dialogbox, wait to finish&lt;/STRONG&gt;) τα εχει ολα ετοιμα και εσυ απλα συμπληρωνεις τα απαραιτητα "στοιχεια". τι ενοεις ποιο ευκολος τροπος δεν υπαρχει? τα progress bar δεν γινονται ως δια μαγειας θελει λιγο να αφιερώσεις χρόνο.&lt;/P&gt;&lt;P&gt;3)και σημαντικότερο παντα οταν κατεβαζεις μεγαλο ογκο θα σου "παγωνει" η εφαρμωγη-UI και δεν θα βλεπεις αλλαγές στο Interface, ο ποιο τσαπατσουλικος τροπος ειναι να κανεις συχνα me.validate αλλα ειναι πολυ τσαπατσουλικη λυση που θα απασχολει περισσοτερο την εφαρμογή σου και μπορεί να μην δουλεύει πάντα.&lt;/P&gt;&lt;P&gt;Γενικά η ποιο καλη-σωστη λυση ειναι νεο thread οπως ειπε και ο Παναγιωτης (κυρίως αμα θες να κατεβάζεις κατι ΠΟΛΥ μεγάλο και ταυτόχρονα θες να κανεις και άλλα πραγματα στην εφαρμωγή σου απο το να περημένεις), Αντιθέτως αν δεν θες να κάνεις κατι αλλο την ωρα που κατεβαίνει η εικονα τοτε κανε χρήση η της  Network(). την webclient δεν την γνωριζω να σου πω την αληθεια αλλα θελω να δω τι κανει αυτο το client.DownloadFileAsync....&lt;BR&gt;δεν εκατσα καν να μπω σε λεπτομερειες καθως λιγο λιγο μας δινεις τις πληροφοριες και ακομα δεν εχω καταλαβει 100% τι θες να κανεις.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt;&lt;BR&gt;για thread δες kai τον background worker ειναι ο ποιο γρηγορος και ευκολος τροπος να κανεις νεο thread να περνεις προοδο απο αυτο και να το περνας σε μια μπαρα.&lt;/P&gt;&lt;P&gt;απο κει και περα πρεπει να ψαχτεις και λιγο εσυ, παντος στο MSDN θα βρεις πολυ ευκολα παραδειγματα για τον BackgroundWorker or my.Network.&lt;/P&gt;&lt;P&gt;goodluck dude&lt;/P&gt;&lt;P&gt;p.s α κατι ακομα, αν πας σε thread λυση, οντος ΔΕΝ μπορεις να κανεις ετσι απλα Update ενα control μεσα απο ενα άλλο thread, δηλαδη στοn backgroundWorker sto Do_WORK δεν θα μπορουσες να πεις me.progressbar1.value=+1 παραδειγμα θα σκασει, ΑΛΛΑ εχω βρει μια π**σ***α (συγνώμη για την λεξη) πως στο event OnProgressChanged του BW &lt;STRONG&gt;Μπορεις&lt;/STRONG&gt; να το κανεις χωρις προβλημα, αν θυμαμαι καλα....&lt;BR&gt;&lt;/P&gt;&lt;P&gt;&lt;BR&gt;&lt;/P&gt;&lt;P&gt;p.s2 τελος βρηκα googlarontas και αυτο που κανει αυτο που θελει να σου γραψει αργοτερα και ο Παναγιωτης. Update controls from an other thread.&lt;/P&gt;&lt;P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;TR style="vertical-align:top;line-height:normal;"&gt;&lt;TD style="width:40px;text-align:right;"&gt;&lt;PRE style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
 &lt;/PRE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;delegate&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/SPAN&gt; SetControlPropertyThreadSafeDelegate(Control control, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/SPAN&gt; propertyName, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/SPAN&gt; propertyValue);

&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/SPAN&gt; SetControlPropertyThreadSafe(Control control, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/SPAN&gt; propertyName, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/SPAN&gt; propertyValue)
{
  &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/SPAN&gt; (control.InvokeRequired)
  {
    control.Invoke(&lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/SPAN&gt; SetControlPropertyThreadSafeDelegate(SetControlPropertyThreadSafe), &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/SPAN&gt;[] { control, propertyName, propertyValue });
  }
  &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;else&lt;/SPAN&gt;
  {
    control.GetType().InvokeMember(propertyName, BindingFlags.SetProperty, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/SPAN&gt;, control, &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/SPAN&gt;[] { propertyValue });
  }
}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;P&gt;κάλεσε την καπως ετσι:&lt;/P&gt;&lt;P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;TR style="vertical-align:top;line-height:normal;"&gt;&lt;TD style="width:40px;text-align:right;"&gt;&lt;PRE style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
 &lt;/PRE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;SPAN style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;// thread-safe equivalent of&lt;/SPAN&gt;
&lt;SPAN style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;// myLabel.Text = status;&lt;/SPAN&gt;
SetControlPropertyThreadSafe(myLabel, &lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Text"&lt;/SPAN&gt;, status);&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/P&gt;&lt;P&gt;και αν γραφεις σε 3.5 μπορεις να ξαναγραψει το παραπανω ως extension method του Control class και να το καλεις ακομα ποιο ευκολα:&lt;/P&gt;&lt;P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;TR style="vertical-align:top;line-height:normal;"&gt;&lt;TD style="width:40px;text-align:right;"&gt;&lt;PRE style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
 &lt;/PRE&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;SPAN style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;myLabel.SetPropertyThreadSafe(&lt;SPAN style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Text"&lt;/SPAN&gt;, status);&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53714.aspx</link><pubDate>Mon, 14 Sep 2009 21:22:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53714</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53714.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53714</wfw:commentRss><description>&lt;P&gt;Καταρχήν, δεν γίνεται έτσι όπως το περιγράφει ο Johnny. Το λιγότερο, το My.Network κλπ είναι μία helper κλάση της VB.NET και μόνο. Δεύτερον, ο κώδικας σου θα αναγκαστεί να μπλοκάρει για όση ώρα χρειαστεί να κατεβάσεις το αρχείο. Αποτέλεσμα? Δεν θα γίνεται redraw το ProgressBar. &lt;/P&gt;
&lt;P&gt;Θα πρέπει να ξεκαθαρίσεις τί είναι αυτό που ζητάς να γίνει. Θέλεις να έχεις ένα progressbar το οποίο στην αρχή θα είναι στη θέση 0. Όταν πατάς κάποιο κουμπί στη φόρμα σου, θα εκτελέσεις κώδικα ο οποίος θα κατεβάσει ένα μεγάλο αρχείο από κάπου. Σε περιοδικά διαστήματα θέλεις να γίνεται update το progress bar για να δείξει την πρόοδο. Όταν τελειώσει το κατέβασμα, είτε θα αφήσεις το progress bar ως έχει είτε θα το μηδενίσεις.&lt;/P&gt;
&lt;P&gt;Ο παρακάτω κώδικας θα κατεβάσει κάποιο αρχείο, σελίδα ή εικόνα και περιοδικά θα γράψει στην κονσόλα την πρόοδο του κατεβάσματος. Ό κώδικας που γράφει την πρόοδο εκτελείται σε ξεχωριστό thread και έτσι δεν μπλοκάρει ποτέ η εκτέλεση του. Δυστυχώς, το ProgressBar θέλει λίγη δουλίτσα ακόμη καθώς δεν μπορείς να κάνεις update σε ένα UI control από το ξεχωριστό thread. Μόλις προλάβω θα γράψω και τον κώδικα που χρειάζεται για να γίνει αυτό&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;WebClient client=&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; WebClient();
client.DownloadProgressChanged+=(sender,args) =&amp;gt; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"{0} of {1} received, {2}"&lt;/SPAN&gt;, args.BytesReceived ,args.TotalBytesToReceive,args.ProgressPercentage ); 
&amp;nbsp;&amp;nbsp;&amp;nbsp;};

client.DownloadFileAsync(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Uri(&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;@"http://msdn.microsoft.com/en-us/default.aspx"&lt;/SPAN&gt;),&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;@"e:\test.tmp"&lt;/SPAN&gt;);	&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;FONT size=2 face=Tahoma&gt;Η κλάση WebClient είναι αυτή που χρησιμοποιεί και το My.Network από πίσω για να υλοποιήσει την DownloadFile. Τα DownloadProgressChanged είναι ένα event που σηκώνεται περιοδικά όσο κατεβαίνουν &lt;BR&gt;τα δεδομένα και μεταξύ άλλων επιστρέφει και το ποσοστό  ολοκλήρωσης.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;FONT size=2 face=Tahoma&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53708.aspx</link><pubDate>Mon, 14 Sep 2009 19:14:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53708</guid><dc:creator>DUDE!!</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53708.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53708</wfw:commentRss><description>Πιο απλά δεν γίνετε....????Δλδ εγώ είχα σκεφτεί αν μπορεί να συνδεθεί με την λειτουργία του button. Να ξεκινήσει να γεμιζει το progressbar όταν ξεκινήσει το event button1_click και να γεμισει 100% όταν ολοκληρωθεί το event. Μήπως γίνετε έτσι???&lt;br&gt;&lt;br&gt;αα για win appl μιλάμε αυτήν την στιγμή.&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Σύνδεση progressbar με button σε vs 2005 C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/53705.aspx</link><pubDate>Mon, 14 Sep 2009 17:51:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:53705</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/53705.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=53705</wfw:commentRss><description>&lt;BR&gt;&lt;P&gt;θα προσπαθησω σε πολυ "γενικες" γραμμές να σου δωσω καποια ιδέα,&lt;/P&gt;&lt;P&gt;λοιπον αν καταλαβαινω απο αυτα που προσπαθείς να περιγράψεις, λες "να εμφανίζει μια εικόνα" αλλα μέχρι να κατέβει να έχεις progress bar. για Web μου ακουγεται...δεν ξερω...&lt;BR&gt;κοιτα γενικα μια καλη ιδέα ειναι, αν προκειτε για μεταφορα ενώς αρχείου να μπορεις να διαβάσεις το συνολικο μέγεθος του αρχειου αυτου πρωτα να το κανεις ποσοστο %100 και αυτο να ειναι το 100% της μπάρας προοδου σου.&lt;BR&gt;&lt;/P&gt;&lt;P&gt;μετα καθώς το μεταφέρεις "εμφανίζεις" λογικα το γράφεις κάπου αλλου το αρχειο - εικονα... κανε μια loop καθε 1sec να διαβαζει το μεγεθος του αρχειου σου καθως γράφεται στη νεα θεση και αυτο καντο μετατροπή σε ποσοστο % και βάλτο ως currentprogress στην μπαρα.&lt;/P&gt;&lt;P&gt;παραδειγμα. το αρχειο ειναι 100ΚΒ αρα το 100ΚΒ να ειναι το 100% στο Maximum Progress Value&lt;/P&gt;&lt;P&gt;ξεκινάς την μεταφορα - αντιγραφη και καθε ενα δευτ κοιτας το μεγεθος του αρχειου που ερχεται, &lt;/P&gt;&lt;P&gt;ας πουμε οτι μετα απο 5δευτερολεπτα εχουν αντιγραφει 39kb άρα θα μετατρεψεις το 39 σε % και θα το εμφανιζεις στην μπαρα.&lt;/P&gt;&lt;P&gt;εγω παντος για αντιγραφες αρχειων με "ετοιμη μπαρα" δουλευω πάντα την My.Computer.Network.DownloadFile και Upload, απο και προς server me ftp. etc. (in WinForms)&lt;/P&gt;&lt;P&gt;τωρα αν ειναι web και θες να βλεπεις ποσο εχει "κατεβει" η εικονα ίσως να μετρας τα bytes που μεταδιδοντε αλλα δεν μπορω να σου πω πως ακριβως δεν ασχολουμε με web.&lt;/P&gt;</description></item></channel></rss>