private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                //这个函数中可以顺利取到listBox1中值
                var barId = this.listBox1.Items[0].ToString();
                
            }
         }
        public void Route_StepEvent(string stepName)
        {            //但是这样就不可以了
            var locationCode = listBox1.Items[0].ToString();
         }请问是不是object sender, EventArgs e没有添加而取不到值的呀?请问我如果要想第二种也能取到该怎么定义这个函数,以及他的调用函数。

解决方案 »

  1.   

    只要你listBox1确实有项  肯定能获取 跟有没有参数无关
      

  2.   

    另外确保不是在其他线程中调用的Route_StepEvent  如果是 建议采取措施 Invoke begininvoke
      

  3.   

    你要在按钮方法中调用Route_StepEvent(string stepName)这个方法才行。方法没调用,当然没有值。
      

  4.   

    看看你Route_StepEvent(string stepName)这个事件是否没有被触发,如果没被触发的话var locationCode = listBox1.Items[0].ToString();肯定执行不了哦。
    最好可以上代码。
      

  5.   

    Route_StepEvent(string stepName)工作了没有,可以输出一个值就可以测到的。
      

  6.   

    private void btnSave_Click(object sender, EventArgs e)
            {
                try
                {
                    //这个函数中可以顺利取到listBox1中值
                    var barId = this.listBox1.Items[0].ToString();
                    
                }
                Route_StepEvent(stepName);//当然这个stepName是要有值的。这样才能调用下面这个函数。
             }
     public void Route_StepEvent(string stepName)
            {            
                var locationCode = listBox1.Items[0].ToString();
             }
      

  7.   

    你必须确保你的Route_StepEvent这个方法是与创建的控件的线程在同一个线程的,这个和参数没有什么关系的,你你可以在你原来的btnSave_Click这个方法中调用route_StepEvent方法看能不能获得值的