プロが教える店舗&オフィスのセキュリティ対策術

ご質問があります。
フォームが二つ(フォームA、フォームB)あり、フォームAからフォームBを開く時に、フォームBにコードを渡す必要があり、フォームBのShow()をオーバーライドさせて(Show()に引数を設定し、引数でコードを渡し、フォームBの変数にコードをセットして使用する)、コードを使用します。

このShow()のオーバーライドのさせ方なのですが、以下ではエラーが出てしまいました。

public partial class FormB : Form
{
private string hacyucode;

public FormB()
{
InitializeComponent();
}

override void Show(string code)
{
hacyucode = code;
}
}

※「オーバーライドする適切なメソッドが見つかりませんでした。」というエラーが出てしまいます。

Show()の適切なオーバーライドの方法をご教授していただけませんでしょうか。
よろしくお願い致します。

A 回答 (1件)

引数が違う同じ働きをするメソッドならば『オーバーロード』で定義すればいいのではないかと思います



単純に
public void Show( string code )
{
  // 基本クラスのShowメソッドを呼ぶ
  base.Show();
  hacyucode = code;
}
といった具合にしてやればいいでしょう

アクセス指定子の『public』が無いと『private』になってしまうので気おつけましょう

また、override を使うには基本クラスで virtual(仮想関数またはメソッド) になっている必要があると思います …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!