使用委托将变量发送到文本框

本文关键字:文本 变量 | 更新日期: 2023-09-27 18:04:24

如何获取或引用我在button1_Click()中创建的变量k ?

考虑我不能将其设为公共或静态。同时,我想把这个变量的值发送给textbox.text;

如何做到这一点?

    public delegate string fac(int x);
    public static fac intostring = factory;
    public static string factory(int x)
    {
        string inst = x.ToString();
        return inst;
    }
    public class MyClass
    {
        static public string s = intostring(/*here*/);
            public string Text;
        public MyClass(Form Form1)
        {
            var textbox = Form1.Controls.Find("textBox1", true).FirstOrDefault();
            Text = ((TextBox)textbox).Text = (s);
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
         int k = 1;
        intostring(k);
        MyClass my = new MyClass(this);
    }    

使用委托将变量发送到文本框

首先,变量k在button1_Click中的作用域是函数button1_Click,您不能在该函数作用域之外获得对它的引用!

然后,intostring(k);行实际上没有做任何有用的事情,因为您没有使用调用委托的返回结果。

要将文本框的文本设置为k的值,只需在这里这样做:

int k = 1;
var textbox = Form1.Controls.Find("textBox1", true).FirstOrDefault();
((TextBox)textbox).Text = k