Jedna klasa dla wszystkich Form ...

0

Jak to zrobić?

Wykorzystałem:

public partial class Form1
{
}

ale to będzie wykorzystywane dla tylko Form1 a jak zrobić by było wykorzystywana ta klasa w form2??

0

Najpierw opisz dokładnie, co chcesz osiągnąć.

0

Utworzyłem klasę w nowym pliku która powoduje podczas poruszania Formy zmianę Opacity...

Teraz chcę aby ta klasa działała w każdym moim innym okienku a nie tylko jednym.

0

Dziedziczenie się kłania:

public class FormBase : Form
{
/****/
}

public partial class Form1 : FormBase
{
/****/
}

public partial class Form2 : FormBase
{
/****/
}

Obie klasy dziedziczą po klasie FormBase i mają dostęp do nieprywatnych pól i metod. Uruchamianie metod bez wywoływania ich jawnie w klasie potomnej zależy jak to masz teraz zorganizowane

0

mam

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    public partial class Form1
    {
      // funkcja przezroczystość...
    }
}
 

I kilka oddzielnych form... form2 form3 form4... jak zrobię dziedziczenie z innej formy to skopiuje mi wszystkie okienka do tej formy gdzie nie chcę...

0

Ja nie wiem czego Ty chcesz więc nie mogę Ci udzielić dobrej odpowiedzi

0

Poczytaj coś na temat klas zaprzyjaźnionych.
http://www.zgapa.pl/zgapedia/Klasa_zaprzyja%C5%BAniona.html

0

W C# nie ma klas zaprzyjaźnionych, chyba, że coś mi umknęło.
EDIT:
Owszem coś umknęło. Można użyć internal do osiągnięcia podobnego efektu, ale myślę, że to tutaj nie ma zastosowania.

@autor
A dlaczego forma bazowa miałaby mieć jakieś "okienka"? A nie może być pusta? Może mieć tylko jedną funkcję wirtualną która będzie ustawiać to co chcesz i możesz taką funkcję wywoływać z potomnych, albo wywołać ją w kontstruktorze(lub zdarzeniu) formy bazowej co spowoduje taki efekt jak chcesz(chyba bo tego nadal nie wiem).

0

Mam kilka windows FORM...
i kod który robi przezroczystość

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    public partial class Form1  // by działał pod Form1 ale chcę by działał pod kilkoma na raz....
    {
        private const long BUTTON_DOWN_CODE = 0xa1;
        private const long BUTTON_UP_CODE = 0xa0;
        private const long WM_MOVING = 0x216;

        static bool left_button_down = false;

        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            //Check the state of the Left Mouse Button
            if ((long)m.Msg == BUTTON_DOWN_CODE)
                left_button_down = true;
            else if ((long)m.Msg == BUTTON_UP_CODE)
                left_button_down = false;

            if (left_button_down)
            {
                if ((long)m.Msg == WM_MOVING)
                {
                    //Set the forms opacity to 50% if user is moving
                    if (this.Opacity != 0.5)
                        this.Opacity = 0.5;
                }
            }

            else if (!left_button_down)
                if (this.Opacity != 1.0)
                    this.Opacity = 1.0;

            base.DefWndProc(ref m);
        }
    }
}

Fajnie wszystko ale jak zrobić aby... ta klasa była częścią kilku windows Form... ??? By podczas poruszania każdego okienka ta funkcja działała..... Chyba bardziej już łatwiej nie potrafię tego wytłumaczyć... Oczywiście już mam Windows Form o nazwie Form1.

0

Dzięki :) powinno pójść bez problemu :)

0

Niestety twój pomysł niezbyt działa ciągle errory...

ehh usunalem przypadkowo od ktorej formy ma sie zaczynac. Sorki...

0
goransol napisał(a)

Niestety twój pomysł niezbyt działa ciągle errory...

ehh usunalem przypadkowo od ktorej formy ma sie zaczynac. Sorki...

Jakie masz errory? Ja właśnie sprawdziłem i wszystko działa. FormBase utwórz jako zwykłą klasę i dziedzicz po Form - nie twórz formatki.

0

tak usunąłem przez przypadek od jakiej formy ma zaczynać heh... stąd te błędy. Wszystko gra cacy dzięki.

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