Rozmiar okna z konstruktora

0

Może trochę głupie pytanie, ale serio sprawdziłem kilka razy i nie znalazłem podobnych postów, więc może spytać warto. A więc, załóżmy że sobie w danym miejscu wywołuję formularz za pomocą new Form1() (albo Form2, Form3 etc.) Czy dałoby się zrobić tak, że konstruktor tego formularza pobiera jakieś dwa integery i na ich podstawie dynamicznie ustala rozmiar okna, np. Form1(int x, int y) dla x=300 i y=200 wywołałoby nowe okno w takich wymiarach. Próbowałem wstawić w konstruktorze kilka różnych poleceń wygooglanych w necie ale w każdym przypadku wyskakiwał jakiś błąd. Czy to oznacza że nie da się tego w ten sposób rozwiązać?

0

mozna przeciez w konstruktorze zapisac rozmiar do zmiennych, a pozniej np. w OnLoad ustawic rozmiar okna

0

Oczywiście musisz utworzyć metodę, która przeciąży konstruktor domyślny:

class Form1500100900
{
    public Form1500100900()
    {
       InitializeComponents();
    }
 
    // w tym konstruktorze instrukcja this() oznacza wywołanie konstruktora bez parametrów, czyli funkcji wyżej
    public Form1500100900(int w, int h) : this()
    {
       this.Width = w;
       this.Height = h;
    }

}

0

Witam forumowiczów.

Odgrzeję temat, bo mam podobny problem i powyższa odpowiedź nie rozwiązała go.

Potrzebuję stworzyć RichTextBoxa po kliknięciu na przycisk i chcę, żeby od razu po stworzeniu miał w sobie jakiś tekst. Robię tak jak przeczytałem w kilku różnych kursach/ poradnikach o konstruktorach i wyrzuca mi błąd. Spróbowałem z ciekawości skopiować kod napisany przez Guest123, żeby zobaczyć czy zadziała. Wyskakuje taki sam błąd tj.:

"'Proj1.Form1500100900' does not contain a definition for 'Width' and no extension method 'Width' accepting a first argument of type 'Proj1.Form1500100900' could be found (are you missing a using directive or an assembly reference?)".

Jeśli ktoś może rozwiązać tę zagadkę, będę wdzięczny :)

0

Wszystko poprawnie, klasa Form1500100900 nie zawiera właściwości Width.

Obstawiam, że w zamyśle autora miała ona dziedziczyć po Form, ale co ja tam mogę wiedzieć.

0

Z tego co wiem to nie mozna bezposrednio zmieniac wartosci Width i Height formularzy. Uzywa sie do tego klasy Size.

kod pisany z glowy, bez kompilatora, ale powinien byc poprawny:


int myWidth = 300;
int myHeight = 400;
this.Size = new Size (myWidth, myHeight);

oczywiscie myWidth i myHeight moga byc parametrami kontruktora ...

0

a ja myślę, że tak jak pisze somekind i tak jak pisze w errorze nie ma po prostu tam właściwości width i height więc na pewno nie można ich ustawić.

1

Z tego co wiem to nie mozna bezposrednio zmieniac wartosci Width i Height formularzy.

Bardzo śmieszne :)

http://msdn.microsoft.com/en-us/library/system.windows.forms.form_members.aspx

"Gets or sets the width of the control. (Inherited from Control.)"

1 użytkowników online, w tym zalogowanych: 0, gości: 1