编辑那些说要使用选项卡控件的人
我很想使用选项卡控件;但是我不知道如何将选项卡控件从主窗体上链接起来。我会假设我必须这样做:
但是,我不知道该怎么做。例如,我知道我可以在User内部创建自定义事件,例如,如果每个控件都有一个“粗体”按钮,那么我可以在每个页面上设置该控件,以便实际使用该按钮。
但是,我还需要注册消息回调,这样我就可以使用MessageGrabber向其发送数据,而当新窗口出现时,UserControl中没有分配数据,这是通过编程分配的;但是由于我没有可引用的控件,所以无法分配。
KISS哲学
就像我现在做的那样,仅仅创建表单,然后将该表单停靠在窗口或其他地方,难道不是更容易吗?所以,从本质上说,它仍然在创建表单,但它也是一个单独的窗口?
原始问题
好吧,所以我很困惑(当涉及到复杂的C#逻辑lol时,这并不是一个大惊喜)!我想做的是:
目标:为新的聊天应用程序设置选项卡聊天。
Completed:每当收到聊天消息或用户从名册中请求新聊天时,打开新窗口。这是完美的工作,只打开一个窗口,当用户还没有打开聊天。那里又好又开心。
Problem:我不想要窗户。嗯,我确实想要一扇窗户,但是,我不想要成堆的单独窗户。例如,我们的客户服务团队可能有大约10个活动的IM窗口一次运行,我不希望他们有10个窗口瓷砖那里lol。我宁愿他们有一个私人IM窗口,所有10个选项卡都停靠在窗口内。
逻辑:这是我的逻辑,可能有缺陷,我很抱歉:
代码示例
if (!Util.ChatForms.ContainsKey(msg.From.Bare))
{
RosterNode rn = rosterControl1.GetRosterItem(msg.From);
string nick = msg.From.Bare;
if (rn != null)
nick = rn.Text;
frmChat f = new frmChat(msg.From, xmpp, nick);
f.Show();
f.IncomingMessage(msg);
return;
}关于:Util的注记。函数只跟踪哈希表中打开的窗口,这样,当消息传入时,它们会路由到适当的窗口。添加了以下内容:
Util.ChatForms.Add(m_Jid.Bare.ToLower(), this);命令在frmChat()表单中。
库在使用中:agsxmpp来自:http://www.ag-software.de/agsxmpp-sdk/download/
Problem:如何将这些代码转换为打开选项卡内部的代码,而不是打开窗口?有人能给我一些想法吗,帮我一下。我只是不能把我的头绕在这个概念上。
发布于 2011-04-23 14:50:31
使用TabControl
https://stackoverflow.com/questions/5764826
复制相似问题