Jak to zrobić? Mam na formatce kilkanaście obiektów wizualnych i jak można nimi sterować metodami klas zdefiniowanymi w programie?
Na razie, przy próbie bezpośredniego odwołania do tych obiektów z wnętrza metody, metoda nie widzi tych obiektów.
Ustawiłem wszystko na public, ale bez powodzenia.
Bardzo będę wdzięczny za pomoc, moja wiedza na temat C# jest bardzo elementarna, co chyba widać.
Pozdrawiam, Jan
Pokaz kod
public partial class Form1 : Form
{
PictureBox pictureBox11 = new PictureBox(); Bitmap image11;
…
public class PlanszaGry
{
…
//metoda klasy
public PlanszaGry(int x0, int y0, int pole0)
{
pictureBox11.Visible = false;
// i tu ‘pictureBox11’ jest podkreślony czerwoną kreską
Z taką jakością pokazania kodu nie oczekuj daleko idącej pomocy pomocy.
Widzę, ze to są oddzielne klasy, i stad masz problem.
- Sugeruję podręcznik i poczytać o zakresach dostępu.
- grzebanie w bebechach innej klas zwykle wskazuje na zły projekt.
Przede wszystkim Twój pictureBox11 jest prywatny. Dlatego nie jest widoczny z innej klasy. Poza tym, najdalej za miesiąc nie będziesz wiedział, czym jest pictureBox11, a czym 12 (chyba, że są ułożone w grida, jeśli nie - nazywaj rzeczy normalnie).
Poza tym, sterowanie elementami GUI z innej klasy to bardzo złe rozwiązanie. Elementy GUI powinny być dostępne jedynie dla klasy formatki. To formatka powinna sterować elementami GUI za pomocą publicznych metod - najlepiej z jakiegoś interfejsu, np:
public interface IBoard
{
void ClearBoard();
}
Dalej Twoja forma ma implementować ten interfejs:
public partial class Form1: Form, IBoard
{
public void ClearBoard()
{
pictureBox11.Visible = false;
}
}
No i na koniec klasa PlanszaGry używa tego interfejsu:
public class PlanszaGry
{
IBoard board;
public PlanszaGry(IBoard board)
{
this.board = board;
this.board.ClearBoard();
}
}
@Stój Halina:
Dziękuję. Tak, to są oddzielne klasy, chociaż w jednym projekcie i w trybie 'public'. Jaki podręcznik byś poleciła?
Dziękuję za pomoc @Juhas. Pozdrawiam, Jan