浏览:3042008-04-02 23:00   来自小隐任行      :

我是新手 

我把控制台的程序改到了winform上。

声明了一个变量  private LumaQQ.NET.QQClient client ;

在登陆时

            QQUser user = new QQUser(Convert.ToInt32( textBox1.Text), textBox2.Text );
            client =new  LumaQQ.NET.QQClient(user);

 在退出的时

client.LoginManager.Logout();

 

问题1:调用退出这个方法时会有一个错误?

        public IConnection GetConnection(string id)
        {
            return registry[id];  //提示 给定关键字不在字典中
        }

 

问题2:可以支持登陆2个或以上QQ吗?如果登陆2个QQ,如何声明事件?

 

 

楼主
  3个月前   阿不      :
回答1:可能是你程序在退出的时候,已经释放了连接了。
回答2:两个QQ你要创建两个QQClient
回复  1楼 回到顶楼 
  3个月前   小隐任行      :
对于问题1我再补充一点:
我是在点了下线后,等了一定时间后才提示这个错误的,如果一下线就关掉程序则不会有这个问题

对于问题2:(新手)
我想把那些状态情况写在一个listbox里,为什么总是提示 不是在当前线程里创建的 listbox 之类的提示?
阿不能不能帮一下啊。。我把大概的winform代码贴出来

在构造中
private LumaQQ.NET.QQClient client ;

在按钮1的单击中
private void button1_Click(object sender, EventArgs e)
{
QQUser user = new QQUser(Convert.ToInt32( textBox1.Text), textBox2.Text );
client =new LumaQQ.NET.QQClient(user);
//登陆方式代码(略)
//登陆事件代码(略)
client.Login();
}


在按钮2的单击中
private void button2_Click(object sender, EventArgs e)
{
client.LoginManager.Logout();
}


//其它复制过来的事件方法(略)


在WL中

private void WL(object text, params object[] args)
{
Console.WriteLine(text.ToString(), args);
listBox1.Items.Add(text.ToString()); //这里报上面提到的错

}
回复  2楼 回到顶楼 
  3个月前   阿不      :
问题1:谢谢你的反馈,我知道哪里的BUG了。
问题2:由于lumaqq.net使用了异步的方面来处理事件,所以在winform事件当中,你要用异步的方法来更新UI控件的。
回复  3楼 回到顶楼 
  3个月前   小隐任行      :
你要用异步的方法来更新UI控件的。
?????

不是很清楚。。。
回复  4楼 回到顶楼 
  3个月前   蓝色的风之精灵      :
@小隐任行:
查看下delegate吧,这就是.net framework的委托方法
回复  5楼 回到顶楼 
  3个月前   小隐任行      :
呵呵
自己也在查询 "C# 子线程访问主窗体控件" 等相关资料,呵呵,搞定了

但有个问题就是从各个事件中传到WL中的参数如何变成一个?
就是以下代码中的内容如何变成一个string的参数?
object text, params object[] args


回复  6楼 回到顶楼 
  3个月前   小隐任行      :
自己写了一个方法来处理
static string FormatString(string format, params object[] arg)
{
StringBuilder builder = new StringBuilder(format);
for (int i = 0; i < arg.Length; i++)
{
builder.Replace("{" + i.ToString() + "}", arg[i].ToString());
}
return builder.ToString();
}
回复  7楼 回到顶楼 
  3个月前   小隐任行      :
不过处理两个QQ的问题就不知道啦。。
回复  8楼 回到顶楼 

你还不是小组成员,加入小组以后才能发布新主题!
1 17116