当我在某个聊天窗口中输入时,如何让我的新窗口显示为静默

时间:2015-03-18 04:46:51

标签: c# winforms wcf

我正在使用C#Winforms开发Instant Messaging应用程序。此应用程序使用WCF服务在客户端之间发送和接收消息和文件。此应用程序允许我与公共,私人和群组中的可用用户聊天。

我的问题是,如果我在任何聊天窗口中输入任何消息;如果我在另一个窗口收到消息焦点转移到新窗口,无论我输入什么,它都会输入我收到消息的新窗口。

当我在某个聊天窗口输入内容时,如何让我的新窗口显示为静音?

1 个答案:

答案 0 :(得分:0)

我正在使用三个差异winforms进行私人,公共和群组聊天。我有一个用户私人聊天和群组列表进行群组聊天,我也可以选择与所有在线用户进行公共聊天。对于私人和群组聊天,它会创建相应表单的多个实例。

当我收到消息时,它将检查特定私人/组/公共聊天窗口的实例是否正在运行,如果它正在运行,它将使用现有实例来显示消息,否则它将为相应的聊天窗口创建新实例。

我已经解决了我的问题:

我正在寻找ActiveControl和ActiveForm 然后我使用下面的代码来设置我的活动窗口

if(_ActiveControl!= null)                             {

                            if (_ActiveControl is Form)
                            {
                                if ((_ActiveControl is {form name for public chat window}) || (_ActiveControl is {form name for private chat window}) || (_ActiveControl is {form name for Group chat window}))
                                {
                                    _ActiveForm = (Form)_ActiveControl;
                                    _ActiveForm.Activate();
                                    _ActiveForm.Focus();
                                    TextBox _tb = (TextBox)_ActiveForm.Controls.Find("txtMessage", true).FirstOrDefault();
                                    _tb.Select(_tb.Text.Length, 0);
                                }
                            }
                        }