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

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

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

Re[16]: Form, TabPagの再描画などについてお教え下さい。 [1]


(過去ログ 99 を表示中)

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

■59224 / inTopicNo.21)  Re[15]: Form, TabPagの再描画などについてお教え下さい。
  
□投稿者/ よねKEN (714回)-(2011/05/19(Thu) 14:52:29)
No59222 (mine さん) に返信
> なおScrollはControl無しでも出来るようです。

少なくとも私のところでは再現できません。
Form1.Designer.vbからTabPage1に関わるコードだけを以下に抜粋しました。
mineさんのソースとで何か差があるのではないでしょうか?

Me.TabPage1 = New System.Windows.Forms.TabPage()
' -- TabPage1に関係ないところは省略
Me.TabControl1.Controls.Add(Me.TabPage1)
' -- TabPage1に関係ないところは省略
Me.TabPage1.AutoScroll = True
Me.TabPage1.Location = New System.Drawing.Point(4, 22)
Me.TabPage1.Name = "TabPage1"
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage1.Size = New System.Drawing.Size(374, 215)
Me.TabPage1.TabIndex = 0
Me.TabPage1.Text = "TabPage1"
Me.TabPage1.UseVisualStyleBackColor = True

※ 私の実験環境は、Win7 64bit、VB2010です。VB2005に近い状態にするためにターゲットフレームワークは.NET Framework2.0としてあります
※ 描画される内容がTabPage1をはみ出すように上記のTabPage1は高さを小さめに設定しています。


引用返信 編集キー/
■59225 / inTopicNo.22)  Re[16]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ mine (19回)-(2011/05/19(Thu) 15:27:29)
No59224 (よねKEN さん) に返信
よねKEN さん, shuさんご連絡有り難う御座います
> ■No59222 (mine さん) に返信
>>なおScrollはControl無しでも出来るようです。
>
> 少なくとも私のところでは再現できません。
> Form1.Designer.vbからTabPage1に関わるコードだけを以下に抜粋しました。
> mineさんのソースとで何か差があるのではないでしょうか?
>
> Me.TabPage1 = New System.Windows.Forms.TabPage()
> ' -- TabPage1に関係ないところは省略
> Me.TabControl1.Controls.Add(Me.TabPage1)
> ' -- TabPage1に関係ないところは省略
> Me.TabPage1.AutoScroll = True
> Me.TabPage1.Location = New System.Drawing.Point(4, 22)
> Me.TabPage1.Name = "TabPage1"
> Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
> Me.TabPage1.Size = New System.Drawing.Size(374, 215)
> Me.TabPage1.TabIndex = 0
> Me.TabPage1.Text = "TabPage1"
> Me.TabPage1.UseVisualStyleBackColor = True
>
> ※ 私の実験環境は、Win7 64bit、VB2010です。VB2005に近い状態にするためにターゲットフレームワークは.NET Framework2.0としてあります
> ※ 描画される内容がTabPage1をはみ出すように上記のTabPage1は高さを小さめに設定しています。
当方の環境はXP, 32bit, VB2005です。
Form1.Designer.vbの情報は当方の情報と差がないように思います。
ただAutoScroll=true, AutoScrollMin=0,500、Size=352,546にしています。 これで一度チェックしてみて頂けませんでしょうか?
よろしくお願い申し上げます。
引用返信 編集キー/
■59260 / inTopicNo.23)  Re[17]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ shu (707回)-(2011/05/20(Fri) 07:55:39)
No59225 (mine さん) に返信

> ただAutoScroll=true, AutoScrollMin=0,500、Size=352,546にしています。 これで一度チェックしてみて頂けませ
AutoScrollMinをTabControlの高さより高く設定したら確かにスクロールバーの表示を確認出来ました。失礼しましたmm

いちおう以下で

    Private Sub TabPage1_Scroll(sender As Object, e As System.Windows.Forms.ScrollEventArgs) Handles TabPage1.Scroll
        TabPage1.Invalidate()
    End Sub

再描画は確認出来ましたが、座標がスクロール分を考慮しないといけないようなので描画処理でスクロール分シフト
して下さい。多少のちらつきがあるかもしれません。


スクロールポジションを考慮したサンプルです↓

    Private Sub TabPage1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles TabPage1.Paint
        Call DrawPic(e.Graphics, TabPage1.AutoScrollPosition.Y)
    End Sub

    Private Sub DrawPic(ByVal g As Graphics, baseY As Integer)
        Dim Fonts As New Font("MS 明朝", 12)
        g.DrawString("AAAAAAAAA", Font, Brushes.Black, 100, 200 + baseY)
        g.DrawString("BBBBBBBBB", Font, Brushes.Black, 100, 230 + baseY)
        Dim points = New Point() {New Point(90, 10 + baseY), New Point(20, 180 + baseY), _
New Point(190, 50 + baseY), New Point(10, 70 + baseY), _
New Point(200, 180 + baseY)}
        g.FillPolygon(Brushes.Black, points, System.Drawing.Drawing2D.FillMode.Alternate)
    End Sub

    Private Sub TabPage1_Scroll(sender As Object, e As System.Windows.Forms.ScrollEventArgs) Handles TabPage1.Scroll
        TabPage1.Invalidate()
    End Sub

引用返信 編集キー/
■59271 / inTopicNo.24)  Re[18]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ mine (20回)-(2011/05/20(Fri) 09:53:37)
No59260 (shu さん) に返信
shuさん 度々ご指導有り難う御座います。
お教え頂いたCodeでTabPageのScrollが出来るようになりました。
問題解決です。 
ただpictureBoxのScrollの方が使い勝手が良さそーな気がしますので、
pictureBoxにA4サイズ1ページ毎の範囲を区切って使うことも検討してみたい
と思っています。
重ねてご指導に御礼申し上げます。
解決済み
引用返信 編集キー/
■59272 / inTopicNo.25)  Re[16]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ mine (21回)-(2011/05/20(Fri) 09:57:15)
No59224 (よねKEN さん) に返信
よねKEN さん度々のご指導有り難う御座います。
お教え頂いたことやshuさんからのご指導で問題は解決致しました。
色々貴重な知識をお教え頂き重ねて御礼申し上げます。
解決済み
引用返信 編集キー/
■59289 / inTopicNo.26)  Re[19]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ よねKEN (717回)-(2011/05/20(Fri) 13:57:54)
shuさんのNo59260 の投稿内容でスクロールバーが出るのを私も確認しました。勉強になりました。

No59271 (mine さん) に返信
> ただpictureBoxのScrollの方が使い勝手が良さそーな気がしますので、
> pictureBoxにA4サイズ1ページ毎の範囲を区切って使うことも検討してみたい
> と思っています。

別の案として、TabPage上に必要なサイズでPictureBoxを用意してそこに描画する、
スクロールはTabPageのAutoScrollを利用する、というの方法もありますね。
(TabPageのところは必ずしもTabPageでなくてもよくて、ScrollableControlクラスの派生クラスであれば何でもよいのですが)
解決済み
引用返信 編集キー/
■59325 / inTopicNo.27)  Re[20]: Form, TabPagの再描画などについてお教え下さい。
□投稿者/ mine (23回)-(2011/05/22(Sun) 10:43:33)
No59289 (よねKEN さん) に返信
よねKEN さん度々のご指導有り難う御座います。
先に返信しましたようにTabPageはスクロール出来るようになったのですが使い勝手がもう一つの
様ですのでPictureBoxを使いたいと思っています。
重ねてご指導に御礼申し上げます。
解決済み
引用返信 編集キー/

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

このトピックに書きこむ

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

管理者用

- Child Tree -