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

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

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

No.56194 の関連記事表示

<< 0 >>
■56194  pictureBox上にlabelを表示するには
□投稿者/ クロ -(2011/01/04(Tue) 16:58:26)

    分類:[ASP.NET (C#)] 

    いつもお世話になっております。
    pictureBox上に設定画面で設定した色でグラデーションをかけ、その上に
    labelを表示したいのですが
    labelを表示するとその背景がpictureboxのグラデーションの
    縮小された形になっています。
    labelの背景を透過させたいのですが
    どうしたらいいのか教えて下さい。

    labelの代わりに
    g.DrawStringで文字を書けば、解決はしますが
    時計を表示させたいのでtimerを使って毎秒時間を変える処理をしているのですが
    毎秒Refresh()をすると毎秒ちらつくのでpictureBox上にlabelを表示したいのです。



    private void Form2_Shown(object sender, EventArgs e)
    {
    label1.BackColor = Color.Transparent;
    label.Parent = pictureBox;
    }


    private void pictureBox_Paint(object sender, PaintEventArgs e)
    {
    // グラデーション処理
    Graphics g = pictureBox1.CreateGraphics();
    LinearGradientBrush gb = new LinearGradientBrush(g.VisibleClipBounds, Color.DarkBlue, Color.Wheat, LinearGradientMode.Vertical);

    g.FillRectangle(gb, g.VisibleClipBounds);

    // Refresh();
    gb.Dispose();
    }

    void timer1_Tick(object sender, EventArgs e)
    {
    label1.Text = DateTime.Now.ToString();
    }
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56196  Re[1]: pictureBox上にlabelを表示するには
□投稿者/ やじゅ -(2011/01/04(Tue) 18:36:09)
>
記事No.56194 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56201  Re[2]: pictureBox上にlabelを表示するには
□投稿者/ クロ -(2011/01/04(Tue) 20:52:55)
    No56196 (やじゅ さん) に返信
    > ■No56194 (クロ さん) に返信
    >
    > 分類:[ASP.NET (C#)] ?
    > 本当にASP.NETですか?
    >
    >> private void pictureBox_Paint(object sender, PaintEventArgs e)
    > pictureBox_Paintの描画をやめて、PaintBox.Imageプロパティ設定されたイメージに直接描画してみては
    > どうでしょうか
    > http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html

    すいません。分類を間違えていました。
    C#です。

    string型のイメージも考えたのですが毎秒更新しているので
    ちらつき防止処理を行っても完全にちらつきが取り除けない状態である点と
    毎秒Refresh()を行うとメモリを食うみたいです。

    labelならRefresh()をする必要が無いみたいなので
    出来れば、labelで表示したいのですが方法はないでしょうか?

    最悪の場合は、秒単位を分単位に買えて、やじゅ様のおっしゃった方法を
    考えてはいますが他に方法がありましたらご回答お願いいたします。
記事No.56194 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56207  Re[3]: pictureBox上にlabelを表示するには
□投稿者/ やじゅ -(2011/01/04(Tue) 23:12:39)
>
    No56201 (クロ さん) に返信
    > labelならRefresh()をする必要が無いみたいなので
    > 出来れば、labelで表示したいのですが方法はないでしょうか?

    私の提案の言葉の表現が悪かったみたいです、labelコントロールはそのままで
    PictureBox側をImageプロパティを使用した方法にしてみてはどうですか ってことです。
記事No.56194 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56210  Re[4]: pictureBox上にlabelを表示するには
□投稿者/ クロ -(2011/01/04(Tue) 23:48:28)
    No56207 (やじゅ さん) に返信
    > ■No56201 (クロ さん) に返信
    >>labelならRefresh()をする必要が無いみたいなので
    >>出来れば、labelで表示したいのですが方法はないでしょうか?
    >
    > 私の提案の言葉の表現が悪かったみたいです、labelコントロールはそのままで
    > PictureBox側をImageプロパティを使用した方法にしてみてはどうですか ってことです。
    >

    やじゅ様、何度も回答ありがとうございます。
    意味をまた取り違えたら申し訳ないので念のため、確認しますが
    グラデーションの画像をpictureBoxに設定して、上からlabelを表示するって方法で合っているでしょうか?。
    その方法も考えましたが、設定画面で設定した色でグラデーションをかける処理ができなくなって
    しまうのでちょっと厳しいです。


記事No.56194 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56213  Re[5]: pictureBox上にlabelを表示するには
□投稿者/ やじゅ -(2011/01/05(Wed) 00:25:06)
>
    No56210 (クロ さん) に返信
    > グラデーションの画像をpictureBoxに設定して、上からlabelを表示するって方法で合っているでしょうか?。
    > その方法も考えましたが、設定画面で設定した色でグラデーションをかける処理ができなくなって
    > しまうのでちょっと厳しいです。

    リアルタイムで色を変えるというなら使えないでしょうが…

    そうでないなら、提示したリンク先のように設定画面で設定した色のグラデーションをメモリ上のBitmapに作成してセットから
    imageプロパティにセットすればいいかなと思いました。

記事No.56194 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56212  Re[5]: pictureBox上にlabelを表示するには
□投稿者/ クロ -(2011/01/05(Wed) 00:22:36)
    やじゅ様、回答ありがとうございます。
    また勘違いをしてしまいました。

    Bitmap bmp = new Bitmap(100,100);
    g = Graphics.FromImage(bmp);

    LinearGradientBrush gb = new LinearGradientBrush(g.VisibleClipBounds, Color.DarkBlue, Color.Wheat, LinearGradientMode.Vertical);
    g.FillRectangle(gb, g.VisibleClipBounds);
    pictureBox.Image = bmp;

    で、グラデーションのImageを作成して、pictureBoxのImageプロパティに設定する事が出来ました。
    これで処理も軽く、ちらつきも無くす事ができ、助かりました。

    本当にありがとうございました。
記事No.56194 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56214  Re[6]: pictureBox上にlabelを表示するには
□投稿者/ やじゅ -(2011/01/05(Wed) 00:27:40)
>
    2011/01/05(Wed) 00:27:58 編集(投稿者)

    No56212 (クロ さん) に返信
    > で、グラデーションのImageを作成して、pictureBoxのImageプロパティに設定する事が出来ました。
    > これで処理も軽く、ちらつきも無くす事ができ、助かりました。

    よかったですね、回答を書いている間に解決済みになってしまいましたので、解決済みにしておきます。
記事No.56194 のレス / END /過去ログ94より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -