お世話になります。
VisualStudioC#2010Expressにて、フォーム(A)を作成し、
そのフォーム(A)にShownイベントを取り付けます。
そして、そのフォームを継承したフォーム(B)を作ります。
すると、そのフォーム(B)のみ、実行時だけではなく、
VisualStudioでフォームのデザイン時に
そのフォームを開くと、VisualStudio内でもShownイベントが発生してしまいます。
(A)のフォームでは、この現象は起こりません。
下記のように、表示時に閉じるか否かの分岐をしておくと、
デザイナでも開いた瞬間にメッセージボックスが出て閉じてしまい、
二度と編集できなくなってしまいます。
はっきり言って迷惑です。
デザインしている途中でイベントが発生しないようにするには、
どうすればよいでしょうか。
よろしくお願いいたします。
フォーム(A) 継承元
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private string a = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
if (a == null)
{
MessageBox.Show("aが設定されていません。");
this.Close();
}
}
}
}
フォーム(B) 継承先
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
public class Class1 : Form1
{
}
}
補足
早速の回答、ありがとうございます。 そもそも、何でこんなことが起こるのでしょうか。 全てで起こるのならいざ知らず、継承したものだけに 発生するというのが、よくわかりません。 VisualStudioの本来の仕様なのですか?それとも 不具合かなんかなのでしょうか。 補足で構いませんので、ご回答いただければ幸いです。