十一长假加班中,祝大家国庆快乐!
遇到点问题,winform程序界面上有几个enabled的textbox,这些输入框是根据不同的情况取消enabled属性的。
现在建立了一个线程,enabled的属性也已经取消,界面上能看到输入的值。但是在线程中却取不到值,而且输入框的enabled属性也是false的。
请问应该怎么取到输入框内的值!!
分不多了,大家帮忙啊!!

解决方案 »

  1.   

    是因为跨线程的关系无法取值吗?
    要看一下代码~取值和 textbox enabled or disabled 无关
      

  2.   

    举个例子吧。方法调用比较多。我也站不出来
    界面上有一个textbox Name是txtInputmain
    {
    ...
    Thread th = new Thread(new StartThread(CrossesThread));
    ...
    }void CrossesThread()
    {
    IAsyncResult result = this.BeginInvoke(new DelegateFunction(CacheData));
    this.EndInvoke(result);Thread.Sleep(10000);
    }void CacheData()
    {
       //就在这个方法里取值
       //之前是关于界面控件的迭代
       foreach(Control item in Controls)
       {
            if(item is TextBox && item.Name == "txtInput")
            {
                ...
                string str = item.Text;
                ...
            }
        }
    }
    这样子就取不出来 Text为""
    其实界面上是有值的
      

  3.   

    好像不行。去掉EndInvoke之后就把界面锁死了。
    这个代码的需求是,让线程定时的收集界面上用户填写的数据,然后做成包。也不知道我这样写会不会锁死界面 =。=求指教