オートシェイプのような機能
- 題名: オートシェイプのような機能
- 著者: kei
- 日時: 2004/11/02 14:44:15
- ID: 7118
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: オートシェイプのような機能
- 著者: ゆ
- 日時: 2004/11/04 13:42:00
- ID: 7153
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: オートシェイプのような機能
- 著者: kei
- 日時: 2004/11/04 16:36:06
- ID: 7158
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: オートシェイプのような機能
- 著者: ゆ
- 日時: 2004/11/04 18:04:19
- ID: 7161
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: オートシェイプのような機能
- 著者: kei
- 日時: 2004/11/05 9:59:27
- ID: 7172
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こんにちは
MS Officeのオートシェイプのような機能を実装したく悩んでいます
(オートシェイプの形状は、矩形や矢印のようなシンプルなものだけと考えています)
まず、下敷きのコントロールですが今回はDataGridを使用しています。
その上に、オートシェイプのような物として、矩形や、矢印を配置したいのです。
DataGridのGraphicsを取得してそこに矩形を描けばよいのでしょうが、
その矩形を移動したり変形したりする為には、コントロールを分けるべきだと考えました。
そこで、DataGridの上にPictureBoxを子コントロールとして追加して、
そのPictureBox.Paintメソッドのオーバライドで、PictureBoxに矩形や矢印(不透明)は描画できましたが、
PictureBox自体の背景が透明にできません(下のDataGridが見えるようにしたい)
下にあるコントロールを表示させたまま、上のコントロールに矩形や矢印を描くにはどうしたらよいのでしょうか?
よろしくお願いします
-------------------------------------------------
背景を透明にするために試した事は以下です
1.PictureBoxのサブクラスで SetStyle(ControlStyles.Opaque, True)
2.Paintメソッドでの FillRectangle(New SolidBrush(Color.FromArgb(0)),rectangle)
3.PictureBox.BackColor = color.Transparent とか Color.FromArgb(0)
4.PictureBox.Parent = DataGrid とか
5.PictureBox.Imageに透明のBitMapを指定
6.背景イメージのをアルファ値をColorMatrixで変更