///
                    ///发出请求添加好友信息
                    ///
                        frmcheckMessage checkMessage = new frmcheckMessage();
                        checkMessage.ShowDialog();//标记:显示发送消息的窗体
                        string AddMessage = (string)UserHelper.message;//标记:message为辅助类UserHelper中的全局变量
                        sql = string.Format("insert into dbo.Messages (FromUserId,ToUserId,[Message],MessageTypeId,MessageState values({0},{1},'{2}',{3},{4})", UserHelper.Id, friendId, AddMessage, 2, 0);
                        DBHelper.connection.Open();
                        command = new SqlCommand(sql, DBHelper.connection);
                        int number = command.ExecuteNonQuery();
                        if (number != 1)
                        {
                            MessageBox.Show("发送失败!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);                        }
备注:把消息传递到辅助类UserHelpe中的message中,怎么程序在运行时总是在消息窗体中,传递不出数据。

解决方案 »

  1.   

    辅助类的具体代码如下    class UserHelper
        {
           // public static string Id = "";
            public static string message = "";
        }
    消息窗体具体代码如下:
     private void btnCheck3_Click(object sender, EventArgs e)
            {
               UserHelper.message = txtMessage3.Text;
               this.Hide();
            }
      

  2.   

    把你的消息窗体代码修改成这样,如下: 
    private void btnCheck3_Click(object sender, EventArgs e)
    {
        UserHelper.message = txtMessage3.Text;
        this.DialogResult = DialogResult.OK;
    }
    把发送消息的窗口代码修改,如下:
    frmcheckMessage checkMessage = new frmcheckMessage();
    if (checkMessage.ShowDialog() == DialogResult.OK)//标记:显示发送消息的窗体
    {
        string AddMessage = (string)UserHelper.message;//标记:message为辅助类UserHelper中的全局变量
        sql = string.Format("insert into dbo.Messages (FromUserId,ToUserId,[Message],MessageTypeId,MessageState values({0},{1},'{2}',{3},{4})", UserHelper.Id, friendId, AddMessage, 2, 0);
        DBHelper.connection.Open();
        command = new SqlCommand(sql, DBHelper.connection);
        int number = command.ExecuteNonQuery();
        if (number != 1)
        {
            MessageBox.Show("发送失败!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);    }
    }
      

  3.   

    注意两点:
    1.必须进行if(checkMessage.ShowDialog() == DialogResult.OK)判断.
    2.子窗体要执行this.DialogResult = DialogResult.OK; 进行关闭,而不是this.Hide();