C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.61955 の関連記事表示

<< 0 >>
■61955  フォームの再描写について
□投稿者/ 巴 -(2011/09/13(Tue) 13:06:58)

    分類:[C#] 

    いつもお世話になっています。

    言語はC#、ソフトはVisualStudio2005を使っています。

    フォーム上にPictureBoxを配置して、その中にgifファイルを配置します。
    実行するとフォーム上でgifファイルのアニメーションが再生されているのですが、処理に時間がかかる動作(私が今作成しているのはファイルのコピーツールです)をさせるとその間gifのアニメーションが止まってしまいます。

    コピー処理の手前と最後にRefreshを使ってもダメでした。

    gifなどの連続している画像はどうやっても処理中は止まってしまうものなのでしょうか。
    解決策が分かる方がいらっしゃいましたらお願いいたします。
親記事 /過去ログ104より / 関連記事表示
削除チェック/

■61956  Re[1]: フォームの再描写について
□投稿者/ マサヤ -(2011/09/13(Tue) 13:22:40)
    並列処理のお話でしょうか?
記事No.61955 のレス /過去ログ104より / 関連記事表示
削除チェック/

■61957  Re[2]: フォームの再描写について
□投稿者/ 巴 -(2011/09/13(Tue) 13:25:10)
    No61956 (マサヤ さん) に返信
    > 並列処理のお話でしょうか?

    そうなるのでしょうか?
    方法はどうであれgifアニメーションを停止させたくないんですよね。
記事No.61955 のレス /過去ログ104より / 関連記事表示
削除チェック/

■61958  Re[1]: フォームの再描写について
□投稿者/ shu -(2011/09/13(Tue) 13:27:54)
    No61955 (巴 さん) に返信

    時間の掛かる処理をBackgroundWorker で行うとか。
記事No.61955 のレス /過去ログ104より / 関連記事表示
削除チェック/

■61959  Re[2]: フォームの再描写について
□投稿者/ マサヤ -(2011/09/13(Tue) 13:50:01)
    shuさんの方法に賛成です。

    仕様としては、ファイルコピーをしながら、他の作業をしても問題ないのでしょうか?
    ファイルコピーが終了するまで待つ必要性があるのでしたら、プログレスバー等が必要になるかと。
    その場合、プログレスバーでpictureBoxの部分を隠す、とかできます。
記事No.61955 のレス /過去ログ104より / 関連記事表示
削除チェック/

■61960  Re[2]: フォームの再描写について
□投稿者/ 巴 -(2011/09/13(Tue) 14:06:11)
    No61958 (shu さん) に返信
    No61958 (マサヤ さん) に返信

    お二方とも書き込みありがとうございます。

    BackgroundWorker…初めて耳にしました。

    私が作成しているのは社内のみで使うお役立ちツールのようなもので、手持ちのファイルを選択し、複雑な場所にコピーするだけのツールです。
    コピー作業を開始するまでは静止画を表示して、コピー作業中は長くなるので、その間はgifアニメを再生して「作業中なんですよ」というのを伝えようとしてたんです。

    そのまま表示するPictureBoxを切り替えただけでは止まってしまっていたのでここに書き込んだ次第です。

    簡単な動作でテストしたところ、gifアニメが止まることなく動作することを確認しました。
    使ったことのないものなのでちょっと慣れるのに時間がかかりそうですが、活用してみようと思います。

    お二方ともありがとうございました。
記事No.61955 のレス / END /過去ログ104より / 関連記事表示
削除チェック/

■61962  Re[3]: フォームの再描写について
□投稿者/ マサヤ -(2011/09/13(Tue) 14:26:44)
    2011/09/13(Tue) 14:26:57 編集(投稿者)

    蛇足になりますが、Threadでやるのもいいですよ。
    時間計測の例になります。
    delegate string ThreadMethod();
    static ThreadMethod threadMethod;
    public Form1()
    {
    threadMethod = new ThreadMethod(ThreadMethodA);
    threadMethod.BeginInvoke( new AsyncCallback(MyCall),DateTime.Now);
    InitializeComponent();
    pictureBox1.Image = System.Drawing.Image.FromFile(@"***.gif");
    }
    private static string ThreadMethodA()
    {
    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
    sw.Start();
    for (int i = 0; i < 30; i++)
    {
    System.Threading.Thread.Sleep(100);
    }
    return sw.Elapsed.ToString();
    }
    private static void MyCall(IAsyncResult iar)
    {
    string res = threadMethod.EndInvoke(iar);
    string begin = iar.AsyncState.ToString();
    MessageBox.Show("結果:" + res + " / 始め:" + begin);
    }
記事No.61955 のレス / END /過去ログ104より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -