お世話になります。
フォームにあるラベルに文字を表示し、その文字をスクロールするプログラムを作成しました。
スクロールはできるのですが、スクロールする際に文字がちらついて(早い点滅のような感じ)しまいます。
どのようにすれば、ちらつきを無くすることができますか?
よろしくお願いします。
(VB2008にて作成)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Label1.Text = "文字のスクロール"
'タイマーのインターバルで文字の進む速度が決まります
Timer1.Interval = 5
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim objG As Graphics
objG = Label1.CreateGraphics()
'ここで一旦クリアしないと真っ黒になります
objG.Clear(Label1.BackColor)
'左端を決めて、文字を描画する
objG.DrawString(Label1.Text, Label1.Font, New SolidBrush(Label1.ForeColor), iLeft, 0)
'左端をずらす
iLeft += 1
If iLeft > Label1.Width Then
'右端までいったら戻す
iLeft = 0
End If
objG.Dispose()
End Sub
No.1ベストアンサー
- 回答日時:
背景を塗りつぶしたときに、瞬間的にその色が出るのでちらついているのだと思います。
このようなちらつきは、ダブルバッファリングを用いることで抑えることができます。
1. Labelコントロールと同じサイズのBitmapを用意する。
2. 文字列の描画はBitmapに行う。
3. LabelにBitmapを描画する。
これで、背景の消去とテキストの描画はオフスクリーンで行われるため、画面がちらつかなくなると思います。
(ただ、ここまでするのなら、LabelコントロールではなくPictureBoxでもよさそうな気がしますけども。。。)
回答ありがとうございます。
PictureBoxにて文字のスクロールをしてみようと思うのですが、
具体的にどのようにしたらいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ラベルのスクロール(VB)
Visual Basic(VBA)
-
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
どこにもフォーカスを当てたくない
Access(アクセス)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
C# 画面のちらつきを解消したい
その他(プログラミング・Web制作)
-
6
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
7
ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
C言語・C++・C#
-
8
panelのスクロール表示について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB.net] DataGridViewの列ヘッ...
-
PCで「使用可能な場合はグラフ...
-
VB6,リストボックスの特定行の...
-
多角形の描画。(VC++)
-
C++にて、塗りつぶされた円を描...
-
UpdateData( FALSE); による文...
-
word
-
WM_SIZEとWM_SIZINGの違い (Win...
-
ちらつきを何とかしたい
-
CScrollViewの使用方法について
-
タブコントロール上のピクチャ...
-
MFCのタイマーのつかい方を教え...
-
VBAにGDI+を参照させる方法
-
VB.netでのライン描画方法がわ...
-
MFCタブコントロールのグラデー...
-
NVIDIAのシェーダーキャッシュ
-
アプリケーションのデザイン
-
ビューにビットマップファイル...
-
c++ ダブルバッファリング、以...
-
ペーパーマリオみたいにドット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
NVIDIAのシェーダーキャッシュ
-
MFCでOnPaintのタイミング
-
TextBoxに文字を書いても表示さ...
-
word
-
UpdateData( FALSE); による文...
-
VC++プログラムをつかったBMP画...
-
InvalidateRectの使い方について
-
StretchBlt関数について
-
OneNote 2010 文字と描画がずれる
-
C# ラバーバンドの描画を快適に...
-
エクセルでガンチャートを作成...
-
C++にて、塗りつぶされた円を描...
-
VBAにGDI+を参照させる方法
-
MFC DrawText 背景色とフォント
-
GDI+で高速な描画
-
MFCのタイマーのつかい方を教え...
-
Labelの文字をスクロールする際...
-
FlexGridの一部のみ表示を更新...
おすすめ情報