コード例
「色・文字色」「線の太さ」を設定するプロパティダイアログが表示されるようにします。
※あらかじめメインのフォームとは別に、「色・文字色の変更」ボタンと、線の太さを設定する numericUpDown1
を持つフォーム(Form2)を作成しておきます。
オリジナル・プロパティダイアログの例
[Visual Basic.NET]
※メインフォーム内の記述 'オリジナルのプロパティダイアログ用のフォームを宣言する Private WithEvents myDialog As New Form2() 'メインフォームの Form Loadイベント内などに以下を記述 '※アノテーション機能を使用する際は下記のプロパティを True に設定しておく必要があります ImageKit1.Edit.EditEnabled = True 'オリジナルのプロパティダイアログを設定する ImageKit1.Edit.CustomDialog = myDialog 'オリジナルのプロパティダイアログが閉じたイベントを取得 AddHandler myDialog.FormClosed, AddressOf myDialog_FormClosed 'オリジナルのプロパティダイアログ(=myDialog(=Form2))の表示時用にオブジェクトの内容を取得しておく Private Sub ImageKit1_ObjectSelected(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImageKit1.ObjectSelected myDialog.ikForecolor = ImageKit1.Edit.SelectedObjectForeColor myDialog.ikPenWidth = ImageKit1.Edit.SelectedObjectPenWidth End Sub 'オリジナルのプロパティダイアログで「OK」ボタンを押されたら、オブジェクトにその内容を反映する Private Sub myDialog_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) If (myDialog.DialogResult = DialogResult.OK) Then ImageKit1.Edit.SelectedObjectForeColor = myDialog.ikForecolor ImageKit1.Edit.SelectedObjectPenWidth = myDialog.ikPenWidth End If End Sub ※プロパティダイアログ(Form2)内の記述 'オブジェクトのプロパティ用の変数を宣言する Friend ikForecolor As Color Friend ikPenWidth As Integer 'フォームロードで、ボタンの文字色とNumericUpDownの値を現在の値に設定 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load button1.ForeColor = ikForecolor numericUpDown1.Value = ikPenWidth End Sub '色設定ボタンが押されたらカラーダイアログを表示して色を設定する Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim cd As New ColorDialog() If (cd.ShowDialog() = DialogResult.OK) Then button1.ForeColor = cd.Color End If cd.Dispose() End Sub '「OK」ボタンで設定した内容を反映する Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click ikForecolor = button1.ForeColor ikPenWidth = numericUpDown1.Value End Sub
[Visual C#.NET]
'オリジナルのプロパティダイアログ用のフォームを宣言する private Form2 myDialog = new Form2(); //Form Loadイベント内などに以下を記述 //※アノテーション機能を使用する際は下記のプロパティを True に設定しておく必要があります ImageKit1.Edit.EditEnabled = true; 'オリジナルのプロパティダイアログを設定する ImageKit1.Edit.CustomDialog = myDialog; 'オリジナルのプロパティダイアログが閉じたイベントを取得 myDialog.FormClosed += new FormClosedEventHandler(myDialog_FormClosed); 'オリジナルのプロパティダイアログ(=myDialog(=Form2))の表示時用にオブジェクトの内容を取得しておく private void ImageKit1_ObjectSelected(object sender, EventArgs e) { myDialog.ikForecolor = ImageKit1.Edit.SelectedObjectForeColor; myDialog.ikPenWidth = ImageKit1.Edit.SelectedObjectPenWidth; } 'オリジナルのプロパティダイアログで「OK」ボタンを押されたら、オブジェクトにその内容を反映する void myDialog_FormClosed(object sender, FormClosedEventArgs e) { if (myDialog.DialogResult == DialogResult.OK) { ImageKit1.Edit.SelectedObjectForeColor = myDialog.ikForecolor; ImageKit1.Edit.SelectedObjectPenWidth = myDialog.ikPenWidth; } } ※プロパティダイアログ(Form2)内の記述 'オブジェクトのプロパティ用の変数を宣言する internal Color ikForecolor = Color.Black; internal int ikPenWidth = 0; 'フォームロードで、ボタンの文字色とNumericUpDownの値を現在の値に設定 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load button1.ForeColor = ikForecolor; numericUpDown1.Value = ikPenWidth; End Sub '色設定ボタンが押されたらカラーダイアログを表示して色を設定する private void button1_Click(object sender, EventArgs e) { ColorDialog cd = new ColorDialog(); if (cd.ShowDialog() == DialogResult.OK) button1.ForeColor = cd.Color; cd.Dispose(); } '「OK」ボタンで設定した内容を反映する private void button2_Click(object sender, EventArgs e) { ikForecolor = button1.ForeColor; ikPenWidth = (int)numericUpDown1.Value; }
◆ 参照プロパティ
ImageKit.Edit.CustomDialog
ImageKit.Edit.SelectedObjectForeColor など
そのほかの単独選択したオブジェクトのプロパティを取得・設定するプロパティなどについては、
ImageKit.Edit
メンバ
をご参照ください。
◆ 参照サンプルプロジェクト
\Examples\WinForm\CSharp または VB.NET\4. アノテーション機能\CustomizeAnnotationFunction