Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# WinForms otázka - dědění

Ahoj,

mám založený formulář1, který je poděděný od .NETovského formu.

Daný formulář1 chci použít, jako šablonu pro další různé formuláře.
Konkrétně chci vytvořený formulář2, který bude umět metody z mého vlastního formuláře1.

Zkusil jsem vytvořit formulář pomocí designeru ve VS, a jako base class použil nikoliv form, ale formulář1.
Vše probíhá hladce až na jednu věc.

Vytvořil jsem si taky vlastní konstruktor ve formulář1, který ovšem teď formulář2 vůbec nenabízí a ani ho nezná.
Jak je to prosím možné, respektive kde dělám chybu?

public partial class TForm : Form
    {
        public TForm()
        {
            InitializeComponent();
        }

        string table;
        string columnName;
        int id;

        public TForm(SqlConnection conn, string table, string columnName, int id = 0) : this()
        {
...
...
            

A dále jsem vytvořil form2:


 public partial class CStSmlouvy : TForm
    {
        public CStSmlouvy()
        {
            InitializeComponent();
        }
    }

Takto mám deklarované šablony.

Předmět Autor Datum
Smaž ten bezparametrický konstruktor v TForm. A pořád tam předáváš databázové spojení do Formu, což…
Wikan 31.10.2017 21:13
Wikan
Jj. ok, to mě taky napadlo. Ale teď zase nechápu, jak mám zapsat ten konstruktor ve Formu2. Mám ta… poslední
Flash_Gordon 31.10.2017 21:23
Flash_Gordon

Jj. ok, to mě taky napadlo.

Ale teď zase nechápu, jak mám zapsat ten konstruktor ve Formu2.

Mám tam:

public CStSmlouvy(SqlConnection conn, string table, string columnName, int id = 0) 
        {
            InitializeComponent();
        }

A píše, že konstruktor:
There is no argument given that corresponds to the required formal parameter 'conn'

Ha! Victory !

 public CStSmlouvy(SqlConnection conn, string table, string columnName, int id = 0) : base (conn, table, columnName, id = 0)

Zpět do poradny Odpovědět na původní otázku Nahoru