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ć?
mozna przeciez w konstruktorze zapisac rozmiar do zmiennych, a pozniej np. w OnLoad ustawic rozmiar okna
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;
}
}
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 :)
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ć.
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 ...
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ć.
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.)"