掲示板お問い合わせランダムジャンプ

Top Index
Yahooは検索方式が変わったせいか、うまくサイト内検索できないなぁ。つーわけでグーグルに変更。


2006年02月12日
色を設定できるToolStripSplitButton(ユーザーコントロール)
注意:この記事は「VB2005」向けです。

ワードや、エクセルに使われている、フォントの色、セルの色を選択できるような
ToolStripSplitButtonを作ってみました。

ColorListSplitButton

再現したのは
 ・右側の三角ボタンを押すと、カラーダイアログが表示される。
 ・表示されたカラーダイアログで色を選択すると、アイコンにもカラーが反映される。
 ・カラーが変更されると、左側のボタンがクリックされたイベントが走る。

※左側のボタンを押したときの処理は実装してくださいね。

アイコンの画像はこちらでも使ってください。
FontColor

以下、ソース。
01Public Class ToolStripSplitColorButton
02    Inherits System.Windows.Forms.ToolStripSplitButton
03
04    Private img As System.Drawing.Bitmap
05    Private _PaintColor As Color = Color.Black
06
07    '現在設定されたカラーを取得する
08    Public ReadOnly Property PaintColor() As Color
09        Get
10            Return Me._PaintColor
11        End Get
12    End Property
13
14    'カラーダイアログの表示
15    Private Sub ColorList_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.DropDownOpening
16        Dim CDialog As New ColorDialog
17        If CDialog.ShowDialog = DialogResult.OK Then
18            'Private変数を更新
19            Me._PaintColor = CDialog.Color
20
21            UpdateIcon(Me.PaintColor)
22            Me.Parent.Refresh()
23
24            '色変更をButtonClickイベントとして通知
25            Me.OnButtonClick(e)
26        End If
27    End Sub
28
29    'アイコンのカラーバーを更新
30    Private Sub UpdateIcon(ByVal PaintColor As Color)
31        img = Me.Image
32        If img.Width < 2 OrElse img.Height < 5 Then Exit Sub
33
34        Try
35            Dim x, y As Integer
36
37            'アイコンのカラーバーの更新
38            For x = 1 To img.Width - 2
39                For y = img.Height - 6 To img.Height - 2
40                    img.SetPixel(x, y, PaintColor)
41                Next
42            Next
43
44            '画像の差し替え
45            Me.Image = img
46        Catch ex As Exception
47            Throw New Exception(ex.Message)
48        End Try
49
50    End Sub
51End Class
 powered by vb2html ver2.1b


余談
2ヶ月ぶりにプログラムした。
スキルのレベルダウンを感じる・・・。
[ 投稿者:mk3008 at 23:55 | コントロールTips | コメント(4) | トラックバック(1) ]

この記事へのコメント
無題
勉強になるBlog発見!これからぼちぼち楽しく拝見させて頂きます!がんばってください☆
投稿者: AKI at 2006-02-22 17:25:59
コメントありがとう
思いついたことを適当にやってみてるので、ためになる情報か非常にあやしいですが・・・
がんばります!
投稿者: mk3008 at 2006-02-23 01:57:23
ありがとうございました
有用なコードの公開をありがとうございます
参考にさせていただきました

Dim x, y As Integer
'アイコンのカラーバーの更新
For x = 0 To img.Width - 1
For y = img.Height - 5 To img.Height - 1
img.SetPixel(x, y, PaintColor)
Next
Next

端部まで色がつかなかったので
上記コードに修正しました。
投稿者: ありがとうございました at 2008-08-10 13:07:54
ご利用ありがとうございます
ご利用ありがとうございます。

最近はほとんどフリーソフトの告知ページになってますが、
古い記事は即使えるモノを書いているつもりですので、
よろしければ使ってあげてください。

しかし・・・
古い記事はコード汚なかったりするので、ご注意を^^;
投稿者: mk3008 at 2008-08-11 08:19:09

この記事へのトラックバック
[.NET] 色選択ツールボタン
メモ 色を設定できるToolStripSplitButton(ユーザーコントロー
投稿者: UnitZWEI Trivial Record at 2006-07-04 10:39:14

この記事へのトラックバックURL
http://shinshu.fm/MHz/88.44/a03196/0000107729.trackback

この記事の固定URL
http://shinshu.fm/MHz/88.44/archives/0000107729.html

記事へのコメント
 
認証コード:
画像に表示されるコードを半角英数字で入力して下さい。画像が読み難い場合はこちら
簡単演算認証: 7 + 4 =
足し算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント: