c#在执行method1之后访问method2中method1的字符串

时间:2016-03-27 10:40:03

标签: c# winforms methods combobox

我正在处理一个带有一个文本框,一个按钮,一个组合框和其他几个文本框的表单。

所以,我希望这个winforms程序的工作方式如下:
1)在textbox1中填写数据库索引值(例如:22222)
2)单击按钮。此按钮转到数据库,在textbox1中查找值,最终根据数据库返回的内容创建一个字符串。 (例如:返回值=超;字符串值= 5)
3)单击按钮后,您应该能够填写其他文本框,具体取决于组合框的SelectedIndex 。组合框中填充的值完全取决于button1生成的字符串的值。 (例如:combobox1 selectedindex = 1:textbox2.text = S; combobox selectedIndex = 2:textbox3.text = U)

因此,基本上,必须首先执行button1,然后combobox1才能开始自己执行。另请注意,此处使用了(至少)两种方法:button1_click的void和combobox1_selectedindexchanged的void。

完成了两个第一部分。我遇到的问题是访问button1生成的字符串,该字符串只能在执行后访问,并在combobox1的方法中使用。

这可能吗?

2 个答案:

答案 0 :(得分:0)

在Form类上创建一个属性,一旦使用文本框中的值单击按钮1,就会填充该属性。

然后随时随地使用它。

示例代码:

public partial class Form1 : Form
    {
        public string Value;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Value = textBox1.Text;
            textBox2.Text = this.Value;
        }
    }

答案 1 :(得分:0)

感谢您的帮助! 我最终能够像这样做,真正访问method2范围内的变量,而它是在method1中创建的:

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

        private void button1_Click(object sender, EventArgs e)
        {
            string output = "test";
            File.WriteAllText(@"C:\output.txt", output)
        }
private void combobox1_SelectedItemChanged
        {
            string output = File.ReadAllText(@"C:\output.txt")
            // do something with this string
        }
    }