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

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

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

Re[19]: コントロールの表示速度について


(過去ログ 85 を表示中)

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

■50879 / inTopicNo.1)  コントロールの表示速度について
  
□投稿者/ 裕猫 (121回)-(2010/06/21(Mon) 16:06:43)

分類:[C#] 

windowsXP visualstudio2008 C# で開発しています。
フォームの中のコントロールを
        private void ContRem1()
        {
            this.Controls.Remove(label1);
            this.Controls.Remove(label2);
            this.Controls.Remove(label3);
            this.Controls.Remove(textBox1);
            this.Controls.Remove(button1);
            this.Controls.Remove(button2);
            this.Controls.Remove(button7);
            this.Controls.Remove(comboBox1);
            this.Controls.Remove(comboBox2);
        }

        private void ContAdd1()
        {
            this.Controls.Add(label1);
            this.Controls.Add(label2);
            this.Controls.Add(label3);
            this.Controls.Add(textBox1);
            this.Controls.Add(button1);
            this.Controls.Add(button2);
            this.Controls.Add(button7);
            this.Controls.Add(comboBox1);
            this.Controls.Add(comboBox2);
        }
というコードを作ってつけたりはずしたりしているのですが、切り替わるときコントロールがcpu ペンティアム3GHzメモリ1GHzでもかたかたと変わっていくかんじで遅くてしょうがありません。グラフィックでいうダブルバッファリングのように瞬時にかわるような方法ってないでしょうか?よろしくお願いいたします。

引用返信 編集キー/
■50884 / inTopicNo.2)  Re[1]: コントロールの表示速度について
□投稿者/ みきぬ (927回)-(2010/06/21(Mon) 17:03:10)
まずはこうかな。
詳しくは MSDN で Control.SuspendLayout() と Control.ResumeLayout() を参照。

        private void ContRem1()
        {
            this.SuspendLayout();

            this.Controls.Remove(label1);
            this.Controls.Remove(label2);
            this.Controls.Remove(label3);
            this.Controls.Remove(textBox1);
            this.Controls.Remove(button1);
            this.Controls.Remove(button2);
            this.Controls.Remove(button7);
            this.Controls.Remove(comboBox1);
            this.Controls.Remove(comboBox2);

            this.ResumeLayout();
        }

        private void ContAdd1()
        {
            this.SuspendLayout();

            this.Controls.Add(label1);
            this.Controls.Add(label2);
            this.Controls.Add(label3);
            this.Controls.Add(textBox1);
            this.Controls.Add(button1);
            this.Controls.Add(button2);
            this.Controls.Add(button7);
            this.Controls.Add(comboBox1);
            this.Controls.Add(comboBox2);

            this.ResumeLayout();
        }

引用返信 編集キー/
■50923 / inTopicNo.3)  Re[2]: コントロールの表示速度について
□投稿者/ 裕猫 (122回)-(2010/06/22(Tue) 09:16:49)
No50884 (みきぬ さん) に返信
> まずはこうかな。
> 詳しくは MSDN で Control.SuspendLayout() と Control.ResumeLayout() を参照。
>
アドバイスありがとうございました。コントロールの設定中に処理を止め、完了後に実行するですか。勉強になりました。で、早速組み込んだのですが、変わりませんでした。設定ではなく表示に時間がかかっているようで、コントロールが出た後で、順々にボタンに名前が出てきて、ラベルに半透明処理がされていく感じの動きをします。完全にきりかわるまで1から2秒ほどかかります。1フォームで7種類のレイアウト画面を使うのは無理があるのでしょうか?それともコンボボックスに登録する項目が多くて処理が遅くなるのか.....いろいろ試行錯誤しております。
引用返信 編集キー/
■50972 / inTopicNo.4)  Re[3]: コントロールの表示速度について
□投稿者/ ゆう@ (1回)-(2010/06/22(Tue) 20:37:30)
No50923 (裕猫 さん) に返信
> 設定ではなく表示に時間がかかっているようで、コントロールが出た後で、順々にボタンに名前が出てきて、ラベルに半透明処理がされていく感じの動きをします。完全にきりかわるまで1から2秒ほどかかります。

Add後にResumeLayout()してませんか?
もしそうであるなら、
半透明処理等のコントロールに対する描画処理が全て終わった後に、
ResumeLayout()してみて下さい。
引用返信 編集キー/
■50982 / inTopicNo.5)  Re[1]: コントロールの表示速度について
□投稿者/ はつね (1287回)-(2010/06/23(Wed) 00:19:44)
No50879 (裕猫 さん) に返信
> private void ContRem1()
> {
> this.Controls.Remove(label1);
> this.Controls.Remove(label2);
> this.Controls.Remove(label3);
> this.Controls.Remove(textBox1);
> this.Controls.Remove(button1);
> this.Controls.Remove(button2);
> this.Controls.Remove(button7);
> this.Controls.Remove(comboBox1);
> this.Controls.Remove(comboBox2);
> }
>
> private void ContAdd1()
> {
> this.Controls.Add(label1);
> this.Controls.Add(label2);
> this.Controls.Add(label3);
> this.Controls.Add(textBox1);
> this.Controls.Add(button1);
> this.Controls.Add(button2);
> this.Controls.Add(button7);
> this.Controls.Add(comboBox1);
> this.Controls.Add(comboBox2);
> }

表示と非表示の切り替えだめなの?

引用返信 編集キー/
■50984 / inTopicNo.6)  Re[3]: コントロールの表示速度について
□投稿者/ Jitta on the way (650回)-(2010/06/23(Wed) 07:03:55)
No50923 (裕猫 さん) に返信
> アドバイスありがとうございました。コントロールの設定中に処理を止め、完了後に実行するですか。勉強になりました。で、早速組み込んだのですが、変わりませんでした。設定ではなく表示に時間がかかっているようで、コントロールが出た後で、順々にボタンに名前が出てきて、ラベルに半透明処理がされていく感じの動きをします。完全にきりかわるまで1から2秒ほどかかります。1フォームで7種類のレイアウト画面を使うのは無理があるのでしょうか?それともコンボボックスに登録する項目が多くて処理が遅くなるのか.....いろいろ試行錯誤しております。


そんな実装、デザインが辛くありませんか?
例えば、画面毎にパネルを分けて、パネル単位で表示/非表示をするとか。

引用返信 編集キー/
■50997 / inTopicNo.7)  Re[4]: コントロールの表示速度について
□投稿者/ 裕猫 (123回)-(2010/06/23(Wed) 12:55:36)
No50972 (ゆう@ さん) に返信
返信遅くなりすみません。 朝一から現場のパソコンが壊れまして、復旧作業してたものでチェックが送れてしまいました。
> Add後にResumeLayout()してませんか?
しています。
> もしそうであるなら、
> 半透明処理等のコントロールに対する描画処理が全て終わった後に、
> ResumeLayout()してみて下さい。
半透明処理の指定などはformイニシャライズで指定してレイアウト切り替え時にコントロールのはずしと追加しています。透明指定なんかはaddの中に入れたほうがいいですかね?
引用返信 編集キー/
■50998 / inTopicNo.8)  Re[2]: コントロールの表示速度について
□投稿者/ 裕猫 (124回)-(2010/06/23(Wed) 12:59:09)
No50982 (はつね さん) に返信
> 表示と非表示の切り替えだめなの?
>
.....その考えは、たどり着いていませんでした。本で知ったのはコントロールを付けるはずすという項目だったので表示非表示は頭にありませんでした。早速やってみいようと思います。ありとうございました。
引用返信 編集キー/
■50999 / inTopicNo.9)  Re[4]: コントロールの表示速度について
□投稿者/ 裕猫 (125回)-(2010/06/23(Wed) 13:06:04)
No50984 (Jitta on the way さん) に返信
> そんな実装、デザインが辛くありませんか?
> 例えば、画面毎にパネルを分けて、パネル単位で表示/非表示をするとか。
>
そーなんす。非常につらいです。コントロールが3つも重なってしまってもう涙涙です。
最初のころシングルフォームかマルチフォームかで聞いたときにシングルフォームがよいというアドバイスを受け、シングルフォームのほうが変数値を参照するのに
やりやすかったのでその方向で組んできました。今回この状況になり、マルチフォームにしようかなと考えていたところです。
引用返信 編集キー/
■51001 / inTopicNo.10)  Re[2]: コントロールの表示速度について
□投稿者/ 裕猫 (126回)-(2010/06/23(Wed) 13:40:46)
No50982 (はつね さん) に返信
> 表示と非表示の切り替えだめなの?
>
表示と非表示に書き換えてやってみましたが結果は同じで、あいかわらず一つずつかたかたと切り替わりました。Jitta on the way さんのいうようにフォームをたくさん用意してやってみようと思います。
引用返信 編集キー/
■51004 / inTopicNo.11)  Re[3]: コントロールの表示速度について
□投稿者/ 渋木宏明(ひどり) (1372回)-(2010/06/23(Wed) 14:48:55)
渋木宏明(ひどり) さんの Web サイト
> 表示と非表示に書き換えてやってみましたが結果は同じで、あいかわらず一つずつかたかたと切り替わりました。

根本的なところでどこか、すごい間違いがあるんじゃないかな?

差し支えなければ、コード片じゃなくて再現ソース全部晒してみるとか。
引用返信 編集キー/
■51009 / inTopicNo.12)  Re[3]: コントロールの表示速度について
□投稿者/ はつね (1289回)-(2010/06/23(Wed) 15:17:05)
No51001 (裕猫 さん) に返信
> 表示と非表示に書き換えてやってみましたが結果は同じで、あいかわらず一つずつかたかたと切り替わりました。

SuspendLayout / ResumeLayout
で囲ってもですか?

引用返信 編集キー/
■51022 / inTopicNo.13)  Re[4]: コントロールの表示速度について
□投稿者/ 裕猫 (127回)-(2010/06/23(Wed) 16:20:19)
No51004 (渋木宏明(ひどり) さん) に返信
> 根本的なところでどこか、すごい間違いがあるんじゃないかな?
> 
> 差し支えなければ、コード片じゃなくて再現ソース全部晒してみるとか。
明日までにコード用意いたします。それからまたよろしくお願いいたします。

引用返信 編集キー/
■51023 / inTopicNo.14)  Re[4]: コントロールの表示速度について
□投稿者/ 裕猫 (128回)-(2010/06/23(Wed) 16:21:03)
No51009 (はつね さん) に返信
> SuspendLayout / ResumeLayout
> で囲ってもですか?
>
はい(; ;)
引用返信 編集キー/
■51025 / inTopicNo.15)  Re[5]: コントロールの表示速度について
□投稿者/ 裕猫 (129回)-(2010/06/23(Wed) 16:50:43)
コードです。

引用返信 編集キー/
■51026 / inTopicNo.16)  Re[5]: コントロールの表示速度について
□投稿者/ 渋木宏明(ひどり) (1373回)-(2010/06/23(Wed) 16:52:30)
渋木宏明(ひどり) さんの Web サイト
>明日までにコード用意いたします。それからまたよろしくお願いいたします。

要件としては

>1フォームで7種類のレイアウト画面

てことなんですよね?

「7種類」の遷移はどのように行うんでしょう?

ウィザード式の「すすむ」「もどる」なのか、あるいはメニュー形式で分岐してくのか、など。
引用返信 編集キー/
■51054 / inTopicNo.17)  Re[6]: コントロールの表示速度について
□投稿者/ 裕猫 (130回)-(2010/06/24(Thu) 08:58:35)
No51026 (渋木宏明(ひどり) さん) に返信
> 要件としては
>1フォームで7種類のレイアウト画面
> てことなんですよね?
はいそうです。
> 「7種類」の遷移はどのように行うんでしょう?
> ウィザード式の「すすむ」「もどる」なのか、あるいはメニュー形式で分岐してくのか、など。
ボタンをクリックしたときと計算結果により
private void Opening() //------------------------------------------------オープニング画面表示
{
AllRemove();  //------------------------全コントロールはずし
TitleAD();  //------------------------タイトルコントロール追加
}
のようにして切り替えます。
コードですが、昨日から5回送っているのですがどうしてもUPされません。_〔_ _)_ はてました。行が多すぎるのか
スパム処理の関係かわかりませんがいくら送信してもだめなので今のところこれくらいしかいえません。よろしくお願いいたします。引き続きupの努力はしてみます。
引用返信 編集キー/
■51055 / inTopicNo.18)  Re[7]: コントロールの表示速度について
□投稿者/ ぽぴ王子 (500回)-(2010/06/24(Thu) 09:13:11)
ぽぴ王子 さんの Web サイト
自分であれば、7種類のパネル( Panel )を用意して、その上にコントロールを配置します。
表示状態に応じて、表示する1種類だけ Visible プロパティを True にして他のパネルを False にする
あるいは表示するパネルを BringToFront メソッドで最前面に表示させる等します。

少なくともコントロールの選択も表示も今よりは楽になるのではないかと思います。
引用返信 編集キー/
■51056 / inTopicNo.19)  Re[6]: コントロールの表示速度について
□投稿者/ 裕猫 (131回)-(2010/06/24(Thu) 09:21:01)
コードです。
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.Media;
using GVM;

namespace PG1
{
    public partial class Form1 : Form
    {
        public static string[] Mondai = new string[300];
        public static string[] English = new string[40000];
        public static string[] Japan = new string[40000];
        public static string SeitoMei;  //プレーヤー名
        public static string Namae;     //問題データ名
        public static string JiNamae;   //辞書データ名
        public static string Haikei;    //背景CG名
        public static string Hito;      //キャラクター名
        public static int Iti;          //キャラクター位置X
        public static int Takasa;       //キャラクター位置Y

引用返信 編集キー/
■51057 / inTopicNo.20)  Re[7]: コントロールの表示速度について
 
□投稿者/ 裕猫 (132回)-(2010/06/24(Thu) 09:22:54)
分割してアップしてます。続き2
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.SuspendLayout();
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            LevelLabel.BackColor = Color.FromArgb(150, Color.Black);
            TitlLabel.BackColor = Color.FromArgb(150, Color.Black);
            TitleLabel2.BackColor = Color.FromArgb(150, Color.Black);
            GakunenLabel.BackColor = Color.FromArgb(150, Color.Black);
            UTLabel.BackColor = Color.FromArgb(150, Color.Black);
            KoumokuLabel.BackColor = Color.FromArgb(150, Color.Black);
            SeikaiLabel.BackColor = Color.FromArgb(150, Color.Black);
            KotaeLabel.BackColor = Color.FromArgb(150, Color.Black);
            NamaeLabel.BackColor = Color.FromArgb(150, Color.Black);
            TangoEibun.BackColor = Color.FromArgb(150, Color.Black);
            WayakuLabel.BackColor = Color.FromArgb(150, Color.Black);
            Tourokuzumi.BackColor = Color.FromArgb(150, Color.Black);
            HinsiLabel.BackColor = Color.FromArgb(150, Color.Black);
            this.LevelLabel.ForeColor = Color.White;
            this.TitlLabel.ForeColor = Color.White;
            this.TitleLabel2.ForeColor = Color.White;
            this.GakunenLabel.ForeColor = Color.White;
            this.UTLabel.ForeColor = Color.White;
            this.KoumokuLabel.ForeColor = Color.White;
            this.SeikaiLabel.ForeColor = Color.White;
            this.KotaeLabel.ForeColor = Color.White;
            this.NamaeLabel.ForeColor = Color.White;
            this.TangoEibun.ForeColor = Color.White;
            this.WayakuLabel.ForeColor = Color.White;
            this.Tourokuzumi.ForeColor = Color.White;
            this.HinsiLabel.ForeColor = Color.White;

            this.FormBorderStyle = FormBorderStyle.None;
            this.CenterToScreen();
            this.DoubleBuffered = true;
            this.Width = 800;
            this.Height = 600;
            this.Text = "タイトル";
            TitlLabel.Text = "タイトルG";
            GakunenTX.Items.Add("LV1");
            GakunenTX.Items.Add("LV2");
            GakunenTX.Items.Add("LV3");
            KoumokuTX.Items.Add("TG_V");
            KoumokuTX.Items.Add("JK_V");
            KoumokuTX.Items.Add("KM_V");
            JiNamae = "辞書\\統合辞書.dic";
            this.ResumeLayout();

            Opening();
        }

引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -