私は2つのフォーム、メインフォーム& ModalBoxを持っています。カスタムイベントを使用して別のフォームで図形を描くc#
メインフォームでは、クリックすると、comboBoxの選択されたインデックスに応じて形状が描画されます。 ModalBoxフォームで
// Create Rectangle or Ellipse
public void buttonAdd_Click(object sender, EventArgs e)
{
SolidBrush sb = new SolidBrush(Color.Red);
Graphics g = panel1.CreateGraphics();
if (shapeSizeControl1.comboBoxShapeSelection.SelectedIndex == 0)
{
g.FillRectangle(sb, Convert.ToSingle(shape.X), Convert.ToSingle(shape.Y), Convert.ToSingle(shape.Width), Convert.ToSingle(shape.Height));
}
else if (shapeSizeControl1.comboBoxShapeSelection.SelectedIndex == 1)
{
g.FillEllipse(sb, Convert.ToSingle(shape.X), Convert.ToSingle(shape.Y), Convert.ToSingle(shape.Width), Convert.ToSingle(shape.Height));
}
}
私は、メインフォームにボタンと同じことを行う必要があり、[OK]ボタンを持っているが、私はそうするためにそれをプログラムする方法が分からないので、それはしていません。 ModalBox buttonOk_ClickにメインフォームbuttonAdd_Clickから同じコードをコピー
私が試した何...
。 Panel1変数を取得するために新しいMainフォームをインスタンス化する必要があるため、悪い考えです。もしそうすれば何も起こらない。どうして?私は説明がすばらしくなるとは思っていません。
ModalBoxフォームが開いたときにカスタムイベントを作成すると、購読してからOKボタンを押すと、図形が描画されます。 1つの問題ボタンが2番目のフォームにあるため、イベントを呼び出す場所とnullを確認する場所がわかりません。最初のフォームでカスタムイベントを呼び出すと、イベントを呼び出してnullチェックを行う場所がありません。
ゴール
私の目標は、ModalBoxフォームの[OK]ボタンを使用してModalBoxフォームからメインフォームに図形を追加する方法を見つけ出すことです。
PSを呼び出して、モーダルフォームで所有者最後に
を設定します。これを正しく行うには、フォームの 'Paint'イベントを購読し、そこで描画を行う必要があります。 – ja72