如题:例如我要获得ComboBox里的值。下面是代码
        private delegate string GetVersion(); 
        private string GetDataVersion()
        {
            string version ="";
            if (this.comboBoxDataVersion.InvokeRequired)  // 如果没有选择
            {
                GetVersion getversion = new GetVersion(GetDataVersion);
                this.comboBoxDataVersion.Invoke(getversion, new object[] {});                //return version;
            }
            else
            {
                if (this.comboBoxDataVersion.SelectedItem == null)
                {
                    return version;
                }
                Item selectedItem = this.comboBoxDataVersion.SelectedItem as Item;
                version = selectedItem.value.ToString();
                //return version;
            }
            return version;
        }
多线程中调用:            string version = GetDataVersion();
            if (version == "")
            {
                MessageBox.Show("请选择作者");
                return;
            }

解决方案 »

  1.   


    private delegate void GetVersion(); 
            private string GetDataVersion()
            {
                string version ="";
                if (this.comboBoxDataVersion.InvokeRequired)  // 如果没有选择
                {
                    GetVersion getversion = new GetVersion(delegate() {version =selectedItem.value.ToString(); });
                    this.comboBoxDataVersion.Invoke(getversion, new object[] {});                //return version;
                }
                else
                {
                    if (this.comboBoxDataVersion.SelectedItem == null)
                    {
                        return version;
                    }
                    Item selectedItem = this.comboBoxDataVersion.SelectedItem as Item;
                    version = selectedItem.value.ToString();
                    //return version;
                }
                return version;
            }
      

  2.   

    楼上的,好像行。错误 1 “string DMSClient.PlanProjectTaskManage.Program.ProgramManageForm.GetDataVersion()”的返回类型错误 E:\network\DMSCLIENT\DMSClient.TaskManage\Program\ProgramManageForm.cs 119 41 DMSClient.PlanProjectTaskManage如果函数也定义成void型,那么我的返回值通过什么获得。谢谢!
      

  3.   

    private delegate string GetVersion(); 
            private string GetDataVersion()
            {
                string version ="";
                if (this.comboBoxDataVersion.InvokeRequired)  // 如果没有选择
                {
                    GetVersion getversion = new GetVersion(GetDataVersion);
                    version = this.comboBoxDataVersion.Invoke(getversion, new object[] {});//注意前面的=号                //return version;
                }
                else
                {
                    if (this.comboBoxDataVersion.SelectedItem == null)
                    {
                        return version;
                    }
                    Item selectedItem = this.comboBoxDataVersion.SelectedItem as Item;
                    version = selectedItem.value.ToString();
                    //return version;
                }
                return version;
            }
      

  4.   

    gisfarmer 说的 也存在 object 转换为 string 的问题啊? 求答案!