Diskuze: Jak pouzit funkci z Form1 ve Form2
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Já se v tom nevyznám
ale nešlo by něco jako Form1.Play()?
Prostě jako když voláš metodu z jiné třídy?
Nevim, v cem delas (WF, WPF, UWP), ale predpokladam, ze se ti formular dedi,
z Form, neco jako Form2 : Form nebo z Page, pokud pracujes v necem jinem.
Zkusil bych vytvorit mezitridu, tzn. neco jako:
public class MyHelpForm : Form
{
//spolecny kod pro obe stranky
}
A z tehle pomocne tridy az tvorit formulare, tudiz prepsat hlavicku formularu na:
public class Form1 : MyHelpForm
, resp.:
public class Form2 : MyHelpForm
Ten MyHelpForm nezna dane komponenty, ktere jsou ve formu obsazeny..
treba WMPlayer
Error 3 The name 'WMPlayer' does not exist in the current context
Jak bych pak volal funkci v MyHelpForm ve form1 ?
Podle toho "Form" je to WF - ve WPF by to bylo "Window "
Funkci ve Form1 udělej jako public. Do Form2 si předej instanci Form1 a pak můžeš použít tu funkci z Form1.
Tlacitko pak nereaguje a nic nedela.
kdyz mam ve form2:
Form1 form1 = new Form1();
form1.play();
(VS ukazuje Form1 Form2.form1 kdyz najedu mysi na form1)
mam to jako public
Chtel bych to vyresit pomoci te pomocne tridy.. ale nedari se mi to .. Je tu
nekde clanek ?
Podarilo se mi akorat z Form2 (temi stejnymi tlacitky) ovladat formular Form1,
coz nechci..
Udělej si třídu a v ní metodu:
public static class Trida
{
public static void Play()
{
WMPlayer.URL = @current_song;
WMPlayer.Ctlcontrols.play();
if (WMPlayer.playState == WMPLib.WMPPlayState.wmppsPaused)
{
WMPlayer.Ctlcontrols.play();
}
}
}
A pak stačí dát jen Trida.Play;
Error 3 The name 'WMPlayer' does not exist in the current context
Error 3 The name 'current_song' does not exist in the current context
Error Trida.cs
Zobrazeno 13 zpráv z 13.