Keresés

Új hozzászólás Aktív témák

  • Fire/SOUL/CD

    félisten

    válasz ReSeTer #9829 üzenetére

    Ez a példa a form1-en lévő button1 katt-ra megnyitja a form2-t, majd az azon található button1 katt-ra módosítja a form1-en a button1 feliratát. Az elv benne van, saját igényednek megfelelően átírod.

    Form1.cs

    namespace WinFormsApp3
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    Form2 MyForm2 = new Form2(this);
    MyForm2.ShowDialog();
    }
    }
    }

    Form2.cs

    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WinFormsApp3
    {
    public partial class Form2 : Form
    {

    private Form1 MyForm1;

    public Form2(Form1 MyForm1)
    {
    InitializeComponent();
    this.MyForm1 = MyForm1;
    }
    private void button1_Click(object sender, EventArgs e)
    {
    MyForm1.Controls["button1"].Text = "PH! Fórum - C# programozás";
    }
    }
    }

  • quailstorm

    félisten

    válasz ReSeTer #9829 üzenetére

    "Teljesen mindegy mi a method, az a lényeg, hogy nem UI-n belül lévő method-on belül akarom megváltoztatni az UI-n lévő feliratot."

    Ilyet nem tudsz csinálni, amennyiben a számolás másik szálon történik. Ha csak egy változót akarsz pörgetni, arra tökéletes az IProgress. Egyébként pedig én callback eventet használnék és dispatcherrel vissza UI threadre (hogy a workerben ne legyen direkt UI kód).

    Ha nincs több szál a dologban, akkor elég a sima event invoke és a callbackben meg UI elem setelés. De ha hosszabb számolás, és a UI-t nem szeretnéd fagyasztani, akkor jobban jársz a külön threaddel.
    Eventek.
    Dispatcher

    Fire/SOUL/CD mutatja a statikus elérését a UI elemnek, azt is lehet, viszont az nem szép és nem moduláris megoldás. Bedrótozod az egyik komponensbe a másik komponens struktúráját.

Új hozzászólás Aktív témák

Hirdetés