Przekazywanie wartości między klasami

0

Witam.Otóż mam form1 i form2.Na form1 mam button który uruchamia mi form2,w form 2 mam trackbar.Chcę ,żeby można było nim ustawić opacity w form 1,zrobiłem coś takiego (nie działa ):

  private void trackBar1_Scroll_1(object sender, EventArgs e)
        {
            double opacity=Convert.ToDouble(trackBar1.Value);
            Form1 F1 = new Form1();
            F1.Opacity = opacity/100;
        }

Ale żeby sprawdzić czy chociaż w tej form2 dziala coś takiego :

double opacity=Convert.ToDouble(trackBar1.Value);
            this.Opacity = opacity/100; 

i jest wszystko ok
Proszę o pomoc w tym prostym problemie ;)
Pozdr.

0

Dlatego, że w pierwszym przykładzie tworzysz nową instancję Form1. Musisz się dobrać do tej istniejącej.

1

Forma1

public void buttonclick....
{
    Form2 f2 = new Form2(this); //przekazujesz wskaznik Formy1 do Kontstruktora formy 2
}

Forma2

partial class Form2
{
private Form1 f1;
public Form2(Form1 f)
{
    f1=f;
}
//teraz  możesz używać f1 jako wskazania na formę 1
}
0

Zrobiłem tak ale teraz w moim form2 ( kiedy wcisne button) nic nie ma (powien byc ten trackbar) okienko jest puste...nic tam nie ma jakby sam form .

0

Stworzyłeś pewnie Form, a nie Form2.

0

Kod w form1 :

 private void przeźroczystośćToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 f2 = new Form3(this);
            f2.Show();

        }

Kod w form2

  private Form1 f1;
        public Form3(Form1 f)
        {
          f1=f;
        }
          
        private void trackBar1_Scroll_1(object sender, EventArgs e)
        {
           
                double o = Convert.ToDouble(trackBar1);
                f1.Opacity = o ;
          
1
 Form3 f2
  private Form1 f1;
 public Form3(Form1 f)

weź jakoś ponazywaj te formy, a nie same takie potworki „form3 f2”

0
 private Tu_chce_zmienic f1;
        public tu_zmieniam(Tu_chce_zmienic f)
        {
          f1=f;
        }
          
        private void trackBar1_Scroll_1(object sender, EventArgs e)
        {
           
                double o = Convert.ToDouble(trackBar1);
                f1.Opacity = o ;
          
            
        } 
 private void przeźroczystośćToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tu_zmieniam o = new tu_zmieniam(this);
            o.Show();

        } 

Tak może być ? :)

1

Boże ... poczytaj o konwencjach nazewniczych w .NET

1

nie ma różnicy jak to nazwę,jeżeli teraz nie działa to i po zmianie nazwy tez nie będzie

1

Bez kitu, tego typu tematów są miliony na tym forum. Po co zabierasz się za windows forms, jak nie masz pojęcia o podstawach C#... najmniejszego pojęcia. Nie wiesz czym się różni klasa od jej instancji(obiektu klasy), nie masz pojęcia jak się używa klas i obiektów. Masz dwa wyjścia: albo zaczniesz naukę od podstaw, albo sobie daruj programowanie, bo nic z tego nie będzie.

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