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

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

C# と VB.NET の入門サイト

Re[3]: Refreshが一回しか参照されない


(過去ログ 60 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■34390 / inTopicNo.1)  RefreshでPaintイベントが発生しない場合があります
  
□投稿者/ xi (5回)-(2009/03/28(Sat) 03:22:11)

分類:[C#] 

2009/03/28(Sat) 13:49:44 編集(投稿者)
2009/03/28(Sat) 13:49:31 編集(投稿者)
<pre><pre>2009/03/28(Sat) 03:25:13 編集(投稿者)
2009/03/28(Sat) 03:25:03 編集(投稿者)
2009/03/28(Sat) 03:25:00 編集(投稿者)
2009/03/28(Sat) 03:24:57 編集(投稿者)

ゲームのプログラムを作成しているのですが
別フォームにミニマップを作る際にRefreshを用いて強制的に更新しているのですがゲームの操作時は動作するのですが
フォーカスをそちら側に移したり別ウインドウで隠したりすると
描画が停止してしまい実際に追ってみてもPaintイベントが発生しなくなってしまいます 
どうしたらいいのでしょうか? なお常時砂時計画面なのも原因のひとつなのでしょうか? 開発環境はVS2008Expressです。
//From1側です

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Threading;
using System.Xml;
中略
ThreadStart t3 = new ThreadStart(mapthread);
thread3 = new Thread(t3);
thread3.IsBackground = true;
thread3.Start();

public void mapthread()
{
if ((map == null) || map.IsDisposed)//mapが開いてない場合Mapを開く
{
map = new MAP();
map.main = this;
map.Show();
}
while(true)
{
main.update();//座標情報の更新
map.Refresh();
Thread.Sleep(50);
}
}
//Form2側です
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GAME
{

public partial class MAP : Form
{
public GAME Main;
public MAP()
{
InitializeComponent();
}
    //ペイントイベントです
private void ON_PAINT(object sender, PaintEventArgs e)
{
Bitmap _bmp = new Bitmap("Map.gif");
Rectangle rec = new Rectangle(0, 0, 256, 256);
e.Graphics.DrawImage(_bmp, rec)
e.Graphics.FillRectangle(Brushes.Black, main.player_x ,main.player_y , 2, 2);
}</pre></pre>
引用返信 編集キー/
■34391 / inTopicNo.2)  Re[1]: Refreshが一回しか参照されない
□投稿者/ xi (6回)-(2009/03/28(Sat) 03:24:06)
なお開発環境は VS2008Eepressです
引用返信 編集キー/
■34417 / inTopicNo.3)  Re[2]: Refreshが一回しか参照されない
□投稿者/ nori (62回)-(2009/03/28(Sat) 19:28:07)
ワーカースレレッドでフォームを表示しているのが原因だと思います。
> コードを投稿する時は、図表モードで投稿した方が良いですよ。
引用返信 編集キー/
■34425 / inTopicNo.4)  Re[3]: Refreshが一回しか参照されない
□投稿者/ xi (7回)-(2009/03/29(Sun) 00:28:24)
フォーム1直下にnewしてスレッド内でdelegateしたら問題なく表示できました
ありがとうございます

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -