如何将值从一个cs文件(void!)传递到另一个?

力量

我的小程序效果很好,读取具有3个配置值的xml文件,读取json-http-page等。现在,我要做一件事:在我的设置对话框中显示xml中的值。我得到了这个(Program.cs):

using ...

//*****************************************************************************
namespace t2bl
{
abstract class TANSS2BL
{



    public static NotifyIcon notico;


    //==========================================================================


    public static void Main(string[] astrArg)
    {
        ContextMenu cm;
        MenuItem miCurr;

        cm = new ContextMenu();

        miCurr = new MenuItem();
        miCurr.Index = 0;
        miCurr.Text = "&Settings";
        miCurr.Click += new System.EventHandler(SettingsClick);
        cm.MenuItems.Add(miCurr);

        miCurr = new MenuItem();
        miCurr.Index = 1;
        miCurr.Text = "Beenden";
        miCurr.Click += new System.EventHandler(ExitClick);
        cm.MenuItems.Add(miCurr);

        notico = new NotifyIcon();
        notico.Icon = new Icon("tanss.ico");
        notico.Text = "TANSS Busylight Connector";
        notico.Visible = true;
        notico.ContextMenu = cm;
        notico.DoubleClick += new EventHandler(NotifyIconDoubleClick);




        BackgroundWorker bw = new BackgroundWorker();
        bw.DoWork += new DoWorkEventHandler(bw_DoWork);
        bw.RunWorkerAsync();





        Application.Run();




    }

    public static void bw_DoWork(object sender, DoWorkEventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load("C://bll.config.xml");

        XmlNode xmlurl = doc.SelectSingleNode("/settings/url");
        string url = xmlurl.FirstChild.Value;
        XmlNode xmluid = doc.SelectSingleNode("/settings/userID");
        string userid_string = xmluid.FirstChild.Value;
        XmlNode xmlrefresh = doc.SelectSingleNode("/settings/refresh");
        string refresh_string = xmlrefresh.FirstChild.Value;

        int userid = Convert.ToInt32(userid_string);
        int refresh = 1000 * (Convert.ToInt32(refresh_string));

        var controller = new BusylightUcController();


        while (true)
        {
            WebClient client = new WebClient();
            var downloadString = client.DownloadString(url + "/module/busylight.php?    user=" + userid);

            JObject colors = JObject.Parse(downloadString);
            //Console.WriteLine(colors["color"]); //Debug
            var colorStatus = Convert.ToInt32(colors["color"]);

            switch (colorStatus)
            {
                check the colors and set the light
            }
            Thread.Sleep(refresh);
            GC.Collect();
        }
    }



    //==========================================================================
    protected static void ExitClick(Object sender, EventArgs e)
    {
        notico.Dispose();
        Application.Exit();
    }

    //==========================================================================
    protected static void SettingsClick(Object sender, EventArgs e)
    {

        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>

        // This should open the "Settings"-Popup, containing 3 textboxes and a button to    save them to xml.
        SettingsDiag form1 = new SettingsDiag();
        form1.Show();
    }

    //==========================================================================
    protected static void NotifyIconDoubleClick(Object sender, EventArgs e)
    {
        // ...
    }



}
}

另一方面(Form1.Designer.cs):

namespace Settingsdialog
{
    partial class SettingsDiag
    {

    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Verwendete Ressourcen bereinigen.
    /// </summary>
    /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Vom Windows Form-Designer generierter Code

    /// <summary>
    /// Erforderliche Methode für die Designerunterstützung.
    /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
    /// </summary>
    private void InitializeComponent()
    {
        this.label1 = new System.Windows.Forms.Label();
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.SuspendLayout();
        // 
        // label1
        // 
        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(50, 28);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(163, 13);
        this.label1.TabIndex = 0;
        this.label1.Text = "TANSS Busylight connector v1.0";
        this.label1.Click += new System.EventHandler(this.label1_Click);
        // 
        // textBox1
        // 
        this.textBox1.Location = new System.Drawing.Point(53, 65);
        this.textBox1.Name = "textBox1";
        this.textBox1.Size = new System.Drawing.Size(159, 20);
        this.textBox1.TabIndex = 1;
        this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(271, 117);
        this.Controls.Add(this.textBox1);
        this.Controls.Add(this.label1);
        this.Name = "Form1";
        this.Text = "TANSS Busylight connector";
        this.ResumeLayout(false);
        this.PerformLayout();

    }


    #endregion

    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.TextBox textBox1;

}

}

我如何将值“ url”,“ userid_string”,“ refresh_string”从backgroundworker void传递到“ textbox1.Text =“输出?

谢谢!

霍格威德

有多种方法可以完成此任务,您可以在其他答案中找到另一种方法:我建议您将工作进程设置为异步运行,因此您可以使用worker事件报告更新进度,然后在处理程序中更新文本框

bw.WorkerReportsProgress = true;
bw.ProgressChanged += (o, args) => { textBox1.Text = args.UserState.ToString();}

显然,在bw.DoWork事件处理程序中,您需要报告进度操作,并将UserState传递为要报告和更新的字符串值,因此在事件处理程序中,您需要调用

bw.ReportProgress(0, "you value to report");

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符串值从一个 void 方法传递到另一个 void 方法

来自分类Dev

如何将函数的结果从一个文件传递到另一个文件

来自分类Dev

如何将变量从一个类传递到另一个?

来自分类Dev

如何将值从一个jsp传递到另一个jsp页面?

来自分类Dev

如何将值从一个Jasmine JavaScript测试传递到另一个测试

来自分类Dev

如何将值传递给对象表从一个表到另一个?

来自分类Dev

如何将值从一个HTML传递到另一个HTML页面?

来自分类Dev

jQuery:如何将值从一个函数传递到另一个函数?

来自分类Dev

如何将js值从一个html页面传递到另一个

来自分类Dev

如何将值从一个 Viewcontroller 传递到另一个 struct swift

来自分类Dev

如何将生成的变量从一个html文件传递到另一个

来自分类Dev

如何将生成的变量从一个html文件传递到另一个

来自分类Dev

如何将生成的变量从一个html文件传递到另一个

来自分类Dev

如何通过Java脚本将php值从一个文件传递到另一个文件

来自分类Dev

如何通过Java脚本将php值从一个文件传递到另一个文件

来自分类Dev

React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

来自分类Dev

将php变量从一个文件传递到另一个文件?

来自分类Dev

将php变量从一个文件传递到另一个文件?

来自分类Dev

如何将两个值从一个函数传递到同一类中的另一个函数?

来自分类Dev

将值从一个 jsp 文件传递到另一个 jsp 文件

来自分类Dev

如何将会话从一个servlet传递到另一个

来自分类Dev

将INT值从一个场景传递到另一个场景

来自分类Dev

将值从一个模板传递到另一个

来自分类Dev

单击按钮将值从一个输入传递到另一个

来自分类Dev

将值从一个函数传递到另一个C ++

来自分类Dev

将值从一个函数传递到另一个函数

来自分类Dev

将值从一个jInternalFrame传递到另一个jInternalFrame

来自分类Dev

将值从一个对象传递到另一个Java

来自分类Dev

将值从一个表传递到另一个表

Related 相关文章

  1. 1

    如何将字符串值从一个 void 方法传递到另一个 void 方法

  2. 2

    如何将函数的结果从一个文件传递到另一个文件

  3. 3

    如何将变量从一个类传递到另一个?

  4. 4

    如何将值从一个jsp传递到另一个jsp页面?

  5. 5

    如何将值从一个Jasmine JavaScript测试传递到另一个测试

  6. 6

    如何将值传递给对象表从一个表到另一个?

  7. 7

    如何将值从一个HTML传递到另一个HTML页面?

  8. 8

    jQuery:如何将值从一个函数传递到另一个函数?

  9. 9

    如何将js值从一个html页面传递到另一个

  10. 10

    如何将值从一个 Viewcontroller 传递到另一个 struct swift

  11. 11

    如何将生成的变量从一个html文件传递到另一个

  12. 12

    如何将生成的变量从一个html文件传递到另一个

  13. 13

    如何将生成的变量从一个html文件传递到另一个

  14. 14

    如何通过Java脚本将php值从一个文件传递到另一个文件

  15. 15

    如何通过Java脚本将php值从一个文件传递到另一个文件

  16. 16

    React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

  17. 17

    将php变量从一个文件传递到另一个文件?

  18. 18

    将php变量从一个文件传递到另一个文件?

  19. 19

    如何将两个值从一个函数传递到同一类中的另一个函数?

  20. 20

    将值从一个 jsp 文件传递到另一个 jsp 文件

  21. 21

    如何将会话从一个servlet传递到另一个

  22. 22

    将INT值从一个场景传递到另一个场景

  23. 23

    将值从一个模板传递到另一个

  24. 24

    单击按钮将值从一个输入传递到另一个

  25. 25

    将值从一个函数传递到另一个C ++

  26. 26

    将值从一个函数传递到另一个函数

  27. 27

    将值从一个jInternalFrame传递到另一个jInternalFrame

  28. 28

    将值从一个对象传递到另一个Java

  29. 29

    将值从一个表传递到另一个表

热门标签

归档