ImageKit コントロールの右クリック時に表示する編集用のコンテキストメニュー内の「プロパティ」メニューや ToolBarAnnotation の「プロパティ」ボタンをクリックした際に表示されるプロパティダイアログを、 ImageKit 標準のものを使用せずカスタマイズして使用します。

コード例

「色・文字色」「線の太さ」を設定するプロパティダイアログが表示されるようにします。
※あらかじめメインのフォームとは別に、「色・文字色の変更」ボタンと、線の太さを設定する 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