- - PR -
TabControl の指定したTabPageを実行時編集したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-14 21:35
ROMを決め込んでいるみつまんさん、ご親切にありがとうございます。2番目の事項
との事ですが、私には意味が分りません。どなたか助けてください。
_________________ | ||||
|
投稿日時: 2008-03-14 21:46
「みつまん」です。
VB.NETでどう記述するかわかりませんが、C#では Graphics r = e.Grahics; となります。イベント引数 e にGraphicsというプロパティがありませんか。 | ||||
|
投稿日時: 2008-03-14 22:29
みつまんさん、すみません。
以下の内容が不勉強の私には意味が理解できません。 ・Graphicsイベント引数PaintEventArgsのGraphicsプロパティに格納されているのを使用 ・C#ではGraphics r = e.Grahics; ・イベント引数 e にGraphicsというプロパティとは もともと基本を勉強するより、まづプログラムにチャレンジしているうちに.netを理解すればよい。 「最初に基本を・・」では難しくてチャレンジをしなくなるだろう。と教わりがんばってみましたが、やはり基本ですね。 みつまんさん、すみません。独学します。 _________________ [ メッセージ編集済み 編集者: One.net 編集日時 2008-03-14 22:31 ] | ||||
|
投稿日時: 2008-03-15 07:08
トランスレート
Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint Dim g As Graphics = e.Graphics Dim p As New Pen(Color.MidnightBlue, 1) Dim recst As Rectangle() = {New Rectangle(0, 0, 540, 30), _ New Rectangle(0, 30, 540, 20), _ New Rectangle(0, 50, 540, 20), _ New Rectangle(0, 70, 540, 20), _ New Rectangle(0, 90, 540, 20), _ New Rectangle(0, 110, 540, 20), _ New Rectangle(0, 130, 540, 20)} g.DrawRectangles(p, recst) p.Dispose() 'リソースを開放する g.Dispose() End Sub | ||||
|
投稿日時: 2008-03-15 10:18
indigo-xさん、ありがとうございました。
Dim g As Graphics = e.Graphics に修正してデバッグしてみましたが四角形を描写して いる線がPictureBox1の背面に描かれているようで、PictureBox1を削除したら正常に 描くことが出来ました。 なぜPictureBox1を使わなくてもよく、コントロールに直接描けるのかは不明のままです が、次のように記述して正常に描画できるようになりました。大変ありがとうございました。
_________________ | ||||
|
投稿日時: 2008-03-15 14:36
PictureBoxコントロールに限らず、すべてのコントロールは描かれているからです。 各コントロールにあるPaintイベントは、 そのコントロールを描画されるときに発生します。 (TabControlを配置したら、TabControlの枠とか見えますよね?) TabPage_Paintイベントの引数でわたってくる e.Graphicsは、 そのTabPageに対して描画するときに利用するオブジェクトです。 そのオブジェクトに対して、今回のような「四角い枠を描く」といったことを しているため、TabPageに直接描画がされています。 尚、PictureBoxコントロールはお手軽にイメージを表示するコントロールです。 (使わなくてもがんばればイメージはButtonの上とかにも表示できます。) PictureBoxコントロール http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.picturebox(VS.80).aspx 指摘フォロー等ありましたらお願いします。 ※いろいろ修正・・ [ メッセージ編集済み 編集者: Toshi 編集日時 2008-03-15 14:49 ] | ||||
|
投稿日時: 2008-03-15 15:14
Toshiさん、ご親切に分りやすい説明ありがとうございました。
すべてのコントロールは描かれ画像として作られているのですね。Paintイベントに対する 私のイメージは「線や図を描くときに発生するイベント」で元のコントロール本体を描く ところまでは範囲に入っていないイメージでした。このために四角形の描写をしようと している時に、なぜTabPage_Paintイベントなのかがピンときませんでした。 また、PictureBoxコントロールにこだわったのは画像描画のTips等にはほとんど PictureBoxを例にされていますので、まずPictureBoxを貼りつけるものと考えておりました 「手軽にイメージを表示するコントロールです。」との事で納得です。 大変ありがとうございました。 _________________ |