C# 如何与另一个方法中的变量(刚在程序中创建)交互?

C# 如何与另一个方法中的变量(刚在程序中创建)交互?,c#,windows-phone-8.1,C#,Windows Phone 8.1,在第一种方法中,我创建一个文本框矩阵,在另一种方法中(单击按钮)我需要从按钮单击方法中获取文本框的值,然后对它们进行处理。我不知道如何与刚创建的值交互(名称也是新的)。但是我知道我不能使用t[j] private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e) { int selectedIndex = vsematrici.SelectedIndex+2;

在第一种方法中,我创建一个文本框矩阵,在另一种方法中(单击按钮)我需要从按钮单击方法中获取文本框的值,然后对它们进行处理。我不知道如何与刚创建的值交互(名称也是新的)。但是我知道我不能使用
t[j]

 private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        int selectedIndex = vsematrici.SelectedIndex+2;
        StackPanel[] v = new StackPanel[selectedIndex];
        for (int i = 0; i < selectedIndex; i++)
        {
            v[i] = new StackPanel();
            v[i].Name = "matrixpanel" + i;
            v[i].Orientation = Orientation.Horizontal;

            TextBox[] t = new TextBox[selectedIndex];
            for (int j = 0; j < selectedIndex; j++)
            {
                t[j] = new TextBox();
                t[j].Name = "a" + (i + 1) + (j + 1);
                t[j].Text = "a" + (i + 1) + (j + 1);
                v[i].Children.Add(t[j]);

                Thickness m = t[j].Margin;
                m.Left = 1;
                m.Bottom = 1;
                t[j].Margin = m;

                InputScope scope = new InputScope();
                InputScopeName name = new InputScopeName();
                name.NameValue = InputScopeNameValue.TelephoneNumber;
                scope.Names.Add(name);
                t[j].InputScope = scope;
            }
            mainpanel.Children.Add(v[i]);

        }
        Button button1 = new Button();
        button1.Content = "Найти определитель";
        button1.Click += Button_Click;
        mainpanel.Children.Add(button1);

    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
       // Double sa11v = Convert.ToDouble(t[j].Text);

    }
private void vsematrici\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
int selectedIndex=vsematrici。selectedIndex+2;
StackPanel[]v=新的StackPanel[selectedIndex];
对于(int i=0;i

对不起,我说的是英语,我来自俄罗斯:)

您可以创建一个成员变量,用于创建TextBox数组的事件之外-

    TextBox[] _t = null;
    private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        int selectedIndex = vsematrici.SelectedIndex + 2;
        StackPanel[] v = new StackPanel[selectedIndex];
        for (int i = 0; i < selectedIndex; i++)
        {
            v[i] = new StackPanel();
            v[i].Name = "matrixpanel" + i;
            v[i].Orientation = Orientation.Horizontal;

            _t = new TextBox[selectedIndex];
            for (int j = 0; j < selectedIndex; j++)
            {
                _t[j] = new TextBox();
                _t[j].Name = "a" + (i + 1) + (j + 1);
                _t[j].Text = "a" + (i + 1) + (j + 1);
                v[i].Children.Add(_t[j]);

                Thickness m = t[j].Margin;
                m.Left = 1;
                m.Bottom = 1;
                _t[j].Margin = m;

                InputScope scope = new InputScope();
                InputScopeName name = new InputScopeName();
                name.NameValue = InputScopeNameValue.TelephoneNumber;
                scope.Names.Add(name);
                _t[j].InputScope = scope;
            }
            mainpanel.Children.Add(v[i]);

        }
        Button button1 = new Button();
        button1.Content = "Найти определитель";
        button1.Click += Button_Click;
        mainpanel.Children.Add(button1);

    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        if (_t != null)
        {
            //Do your work here
            // Double sa11v = Convert.ToDouble(t[j].Text);
        }

    }
TextBox[]\u t=null;
私有void vsematrici\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
int-selectedIndex=vsematrici.selectedIndex+2;
StackPanel[]v=新的StackPanel[selectedIndex];
对于(int i=0;i
但从更广泛的角度来说,你可以使用字典

Dictionary<string, TextBox> _dicTextBoxes;

    private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        int selectedIndex = vsematrici.SelectedIndex + 2;
        StackPanel[] v = new StackPanel[selectedIndex];
        for (int i = 0; i < selectedIndex; i++)
        {
            v[i] = new StackPanel();
            v[i].Name = "matrixpanel" + i;
            v[i].Orientation = Orientation.Horizontal;

            _dicTextBoxes = new Dictionary<string, TextBox>();
            for (int j = 0; j < selectedIndex; j++)
            {
                TextBox txtBox = new TextBox();

                txtBox = new TextBox();
                txtBox.Name = "a" + (i + 1) + (j + 1);
                txtBox.Text = "a" + (i + 1) + (j + 1);
                v[i].Children.Add(txtBox);

                Thickness m = txtBox.Margin;
                m.Left = 1;
                m.Bottom = 1;
                txtBox.Margin = m;

                InputScope scope = new InputScope();
                InputScopeName name = new InputScopeName();
                name.NameValue = InputScopeNameValue.TelephoneNumber;
                scope.Names.Add(name);
                txtBox.InputScope = scope;

                _dicTextBoxes.Add(txtBox.Name, txtBox);
            }
            mainpanel.Children.Add(v[i]);

        }
        Button button1 = new Button();
        button1.Content = "Найти определитель";
        button1.Click += Button_Click;
        mainpanel.Children.Add(button1);

    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        if (_dicTextBoxes != null)
        {
            // a23 is the name of textbox, 'a' is prefixe, '2' is the 2nd stackpanel you have added
            // '3' is the 3rd textbox you have added in stackpanel
            if (_dicTextBoxes.ContainsKey("a23"))
            {
                //Do your work here
                Double sa11v = Convert.ToDouble(_dicTextBoxes["a23"].Text);
            }
        }

    }
Dictionary\u dictextbox;
私有void vsematrici\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
int-selectedIndex=vsematrici.selectedIndex+2;
StackPanel[]v=新的StackPanel[selectedIndex];
对于(int i=0;i
您可以创建一个成员变量,该变量在创建TextBox数组的事件外部使用-

    TextBox[] _t = null;
    private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        int selectedIndex = vsematrici.SelectedIndex + 2;
        StackPanel[] v = new StackPanel[selectedIndex];
        for (int i = 0; i < selectedIndex; i++)
        {
            v[i] = new StackPanel();
            v[i].Name = "matrixpanel" + i;
            v[i].Orientation = Orientation.Horizontal;

            _t = new TextBox[selectedIndex];
            for (int j = 0; j < selectedIndex; j++)
            {
                _t[j] = new TextBox();
                _t[j].Name = "a" + (i + 1) + (j + 1);
                _t[j].Text = "a" + (i + 1) + (j + 1);
                v[i].Children.Add(_t[j]);

                Thickness m = t[j].Margin;
                m.Left = 1;
                m.Bottom = 1;
                _t[j].Margin = m;

                InputScope scope = new InputScope();
                InputScopeName name = new InputScopeName();
                name.NameValue = InputScopeNameValue.TelephoneNumber;
                scope.Names.Add(name);
                _t[j].InputScope = scope;
            }
            mainpanel.Children.Add(v[i]);

        }
        Button button1 = new Button();
        button1.Content = "Найти определитель";
        button1.Click += Button_Click;
        mainpanel.Children.Add(button1);

    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        if (_t != null)
        {
            //Do your work here
            // Double sa11v = Convert.ToDouble(t[j].Text);
        }

    }
TextBox[]\u t=null;
私有void vsematrici\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
我
class MyClass 
{
    Textbox[] myTextBoxes;


    private void vsematrici_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    {
        // ...
        myTextBoxes = new TextBoxes[selectedIndex];
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int myIndex = // your selected item here
        if (this.myTextBoxes != null && myIndex < this.myTextBoxes.Length)
        {
            Console.WriteLine(this.myTextBoxes[myIndex].Text);
        }
    }
}
button1.Click += (sender, args) => DoSomethingToTextboxes(_t);