我做的一个WCF,采用的是winform作为服务端,定义的是当客户端访问服务端后可以把客户端所对服务端进行的调用信息显示出来,客户端信息可以获得,可不知道为什么就是无法在winform的任何控件上显示,用messagebox.show可以弹出来(也就是说客户端访问信息可以获取到,就是不能显示出来)。用的是WSHttpBinding绑定,求高手教我。

解决方案 »

  1.   

    数据 都拿到了,没显示跟wcf 没关系了。
      

  2.   

    恩,我也是想的和WCF没关系,可惜无论什么控件就是无法显示出来,连textbox都不行,但可以通把消息框把信息弹出来。
      

  3.   

     ServerLog.Items.Add(e.Message);          MessageBox.Show(e.Message);
    这个e.Message我用断点调试过是有值的,用下面那个消息框也可以弹出来。就是不能在任何控件上显示出来。
      

  4.   

    public void AddServerLog(object sender, messageEventArgs e)
            {
                if (e.MessageType == "1")
                {
                    textBox1.Text = e.Message;
                    
                    ServerLog.Items.Add(e.Message);                MessageBox.Show(e.Message);
                  
                }           
               
               
            }
        
      

  5.   

    对了,我试过了,弹出控制台窗口,可以通过console.write显示出来,晕死,就是在控件上显示不出来。
      

  6.   

    是在一个线程里面,而且我赋给textbox控件也显示不出来,textbox控件怎么刷新?
      

  7.   

    哦,试试赋值后Application.DoEvent()
      

  8.   

     private void button1_Click(object sender, EventArgs e)
            {
                EndpointAddress endAddress = new EndpointAddress("http://localhost:8000/ServiceModelSamplesop/Service/CalculatorService");
                CalculatorClient calClient = new CalculatorClient(new WSHttpBinding(), endAddress);
               
                double a =double.Parse( textBox1.Text);
                double b = double.Parse(textBox2.Text);
                string str = comboBox1.SelectedItem.ToString();
                double c=0;
                switch(str)
                {
                    case "加":
                      c=calClient.Add(a,b);
                        break;
                   case "减":
                      c=  calClient.Subtrct(a, b);
                        break;
                    case "乘":
                       c= calClient.Multiply(a, b);
                        break;
                    case "除":
                       c= calClient.Divide(a, b);
                        break;            
                }
                           calClient.Close();
                textBox3.Text = c.ToString();
            }
      

  9.   

    textBox3.Text = c.ToString();
    显不出数据……
      

  10.   

    calClient.Close();
    textBox3.Text = c.ToString();这里出异常吗?还是说textBox3始终里显示0?
      

  11.   

    检查其他代码,可能有清空textBox内容的代码存在,这往往是低级错误导致的。