前奏如何分別與用戶打開多個聊天窗體,但是會阻止已經打開的窗體?
起初,對不起我的英語不好。 :)
我讀過類似問題的語氣,但沒有一個提供瞭解決方案,我的問題,或者我只是愚蠢的。 :)
問題
我怎麼會打開一個新的聊天形式User1
交談,並保留打開從「用戶列表」中的其他用戶聊天形式的可能性,但塊打開一個聊天的形式與已經打開的用戶?
我試圖找到這個東西,但無論我嘗試,它總是相同的(我可以一次又一次地打開相同的形式)。因此,例如,我可以用User1
打開一個聊天表單,我可以與他交談,也可以用User2
打開一個新的聊天表單,我可以與他交談。但我也可以打開多個窗體與User1和User2以及等
另外,我需要通過一些數據從MainForm
形式TalkForm
,所以作爲原型我創建此代碼,我試圖列出,但我「M不知道如何來檢查形式確實在列表中存在:
List<TalkForm> b = new List<TalkForm>();
private void TextBoxConnectedClients_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (TextBoxConnectedClients.SelectedIndex == -1)
{
return;
}
int index = this.TextBoxConnectedClients.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
string username = TextBoxConnectedClients.SelectedItem.ToString();
TalkForm a = new TalkForm(im, username, displayname);
b.Add(a);
a.Show();
}
}
可有人請給我一些例子或者告訴我什麼,我做錯了什麼?謝謝。
得到這個錯誤: '「無法隱式轉換類型‘字符串’到‘布爾’」' '不能lambda表達式轉換爲預期的委託類型,因爲一些塊的返回類型不 隱式轉換爲代理返回類型「' – Gogo
我的不好。單一'='比較是一個罪魁禍首。更新上面的代碼。 – niksofteng
你也可以添加一個else語句,而不是調用當前聊天窗口到前面,使用['Control.BringToFront'](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.bringtofront.aspx): 'TalkForm form = b.firstOrDefault(t = > t.Username == username); if(form!= null){form; BringToFront();}' – Draken