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



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

Top Index

2008年10月03日
ユーザーコントロールにスマートタグを追加する
コントロールをすばやく編集するのに便利な「スマートタグ」を独自実装を試してみたいと思います。

MSDNにとても参考になるページがあるのでまずはこちらを見てみましょう。

  MSDN Windowsフォームコンポーネントにスマートタグを追加する。
  http://msdn.microsoft.com/ja-jp/library/ms171830.aspx

MSDNを見ると、実装手順は以下のようになっています。

1. System.Design.dll を参照設定に加える。(忘れずに・・・)
2. スマートタグに表示される名称とそのロジックを定義したクラス(ColorLabelActionList)を作る。
3. スマートタグ用のデザイナクラス(ColorLabelDesigner)を作り、[2]のクラスをアクションリストに追加する。
4. ユーザーコントロールのデザイナに[3]のクラスをセットする。

スマートタグを実装するには少なくとも2クラスが必要のようです。

ではコレを元に、汎用性の高そうなデータソースを編集するためのスマートタグ(上述の工程でいうところの[2]と[3]のクラス)を作ってみます。

続きを読む ...
 
[ 投稿者:mk3008 at 00:22 | コントロールTips | コメント(0) | トラックバック(0) ]

2006年08月06日
Windowsスタートボタンを作ってみる (フォーム側)
[VB2005用]
Windowsスタートボタンを作ってみる」の続き

コンテキストメニューをクリックイベントで呼ぶ処理なんてまず書かないだろうからメモ。
また、コンテキストメニュー配下のアイテムクリックイベントの処理例も記述。

01Public Class Form1
02
03    Private Sub Button2_Click(ByVal sender As System.Object, _
04            ByVal e As System.EventArgs) Handles Button2.Click
05
06        FileContextMenuStrip1.Show(Button2, New Point(Button2.Width, 0), ToolStripDropDownDirection.Right)
07
08    End Sub
09
10    Private Sub FileContextMenuStrip1_ToolStripMenuItemClick(ByVal sender As Object, _
11            ByVal e As System.EventArgs) Handles FileContextMenuStrip1.ToolStripMenuItemClick
12
13        Dim c As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
14        Try
15            System.Diagnostics.Process.Start(c.Name)
16        Catch ex As Exception
17            Dim s As String
18            s = String.Format("{0}{1}ファイル名:{2}", ex.Message, ControlChars.CrLf, c.Name)
19            MessageBox.Show(s, "起動に失敗", MessageBoxButtons.OK, MessageBoxIcon.Error)
20        End Try
21
22    End Sub
23End Class
powered by vb2html ver2.1b
[ 投稿者:mk3008 at 11:50 | コントロールTips | コメント(1) | トラックバック(0) ]

Windowsスタートボタンを作ってみる
[VB2005用]
スタートボタンっぽいものを作ってみました。
(スタートボタンの「プログラム」だけを作ったというか、
(コンテキストメニューでエクスプローラーを作ったというか・・・

FileContextMenuStrip

スタートボタンを押すと、任意フォルダ配下のフォルダとファイルが列挙されます。

以下、コントロールのクラスのソース。

続きを読む ...
 
[ 投稿者:mk3008 at 11:27 | コントロールTips | コメント(5) | トラックバック(1) ]

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

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

ColorListSplitButton

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

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

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

以下、ソース。

続きを読む ...
 
[ 投稿者:mk3008 at 23:55 | コントロールTips | コメント(6) | トラックバック(1) ]

2005年04月16日
移動、リサイズの出来るコントロールを作る
以前に、移動の出来るコントロールは作成しましたが、今回はリサイズ機能を追加してみようと思います。

「リサイズ時に表示されるフィルハンドル」をどう表現するかはいろいろありそうですが、とりあえずこんな感じになりました。

resizeblecontrol_v1.1

以下ソースコードです。

続きを読む ...
 
[ 投稿者:mk3008 at 17:45 | コントロールTips | コメント(0) | トラックバック(1) ]

2005年04月03日
ドラッグで移動できるコントロールを作る
このエントリーをはてなブックマークに追加
MouseDown、Move、Upイベントを使って、コントロールを移動できるようにしてみます。
これだけではあまりにも簡単に出来るため、ドラッグ中に移動後のイメージを表示するようにしてみました。

以下、ソースコード

続きを読む ...
 
[ 投稿者:mk3008 at 22:35 | コントロールTips | コメント(0) | トラックバック(2) ]

2005年03月20日
動的なコントロール作成と、イベントとの関連付け
このエントリーをはてなブックマークに追加
大量にコントロールを生成したい場合や、外部ファイルによるコントロール生成を行いたい場合、動的にコントロールを生成する必要があります。
また、実際に利用する場合、動的にイベントを関連付ける必要があります。

以下、ソースコードです。

続きを読む ...
 
[ 投稿者:mk3008 at 17:27 | コントロールTips | コメント(0) | トラックバック(0) ]

2005年02月28日
コンボボックスに追加できるアイテムの型を制限する
前回、VS.NETチックなカラーリストコンボを作ったわけですが、 ユーザーコントロールとして利用することを考えた場合、コンボボックス内に表示される色はプログラマによって追加してもらうことになります。

色を選択するコンボボックスなので、アイテムにString型を入れられても困りますので、 Colorオブジェクトしか追加できないように変更できないかと思い実践してみました。

>通常のコンボボックスに追加できるアイテムの型はObject型
combobox_normal

>追加できるアイテムを制限すると・・・
combobox_coloronly

続きを読む ...
 
[ 投稿者:mk3008 at 00:13 | コントロールTips | コメント(0) | トラックバック(1) ]

2005年02月20日
VS.NETのカラーリストコンボ(オーナードローコンボ)を作る
オーナードロー(MSDNではオーナー描画と呼ばれています)とは、描画処理を自分でするという意味です。
例えばコンボボックスは、文字しか表示できないのですが、オーナードローをすることにより、画像も表示させるようなことが出来ます。
楽しそうな機能ではありますが、余程こったUIにでもしない限り、使用することはないと今まで思っていました。
が、ユーザーが自由に色を指定できるようなインターフェイスを考えたとき、ColorDialogはイマイチだと思ったのです。
なぜなら、VS.NETで色を変更するコレをずっと見てきたわけですから・・・

vs_coloredit

単純な話、コレを自作したいと思い、類似品を作ってみました。
preview_colorlistcombo

そこでコレを作る上で勉強したことをメモしておきます。


続きを読む ...
 
[ 投稿者:mk3008 at 15:48 | コントロールTips | コメント(0) | トラックバック(3) ]

2005年01月07日
VB.NETと拡張コントロール
いままで、
コントロールとかはどうでもいいから、オブジェクト指向の設計方法を教えろ!
といっていましたが、こちらの「.Netでいきまっしょい」のTipsみたら、俄然コントロールをいじりたくなってきました。

もともと、ユーザコントロールは作ったことがあったんですが、ちょっと拡張したコントロールを作りたいのなら、「ユーザコントロール」プロジェクトを作るのではなく、ベースとなるコントロールを継承した「クラス」プロジェクトを作ったほうがいいですよね。

いや、これ前に「できそうじゃない?」と思ったけどできなかったのね。
ま、ちょっとした設定をすれば、難なく出来きるんですがね。

続きを読む ...
 
[ 投稿者:mk3008 at 23:19 | コントロールTips | コメント(0) | トラックバック(0) ]