/// <summary> /// Füllt die Liste mit Nicks /// </summary> /// <param name="backColor">Hintergrundfarbe des Channels</param> public void FillNickList(Channel channel) { try { //Das Layout freigeben, sonst gibt das eine ziemliche hängerei beim zeichnen this.ListContainer.SuspendLayout(); //Hintergrundfarbe übernehmen this.BackColor = channel.BackColor; this.ItemListContainer.BackColor = channel.BackColor; //Die einzelnen Items erstellen this.Items = new Dictionary <string, UserListItemControl>(); foreach (ChannelUser channelUser in channel.UserList.ChannelUserList) { UserListItemControl userListItemControl = new UserListItemControl(channelUser, channel.BackColor); userListItemControl.Dock = DockStyle.Bottom; userListItemControl.OnItemSelectedChanged += new EventHandler <ItemSelectedChangedEventArgs>(nli_OnItemSelectedChanged); userListItemControl.OnItemRightClickShifted += new EventHandler <ItemRightClickShiftedEventArgs>(userListItemControl_OnItemRightClickShifted); //Es muss immer erst der User ins Dictionary eingefügt werden //Nur hier kann kontrolliert werden, obe er sich bereits in der liste befindet!!! this.AllUsers.Add(channelUser.Name, channelUser); this.ItemListContainer.Controls.Add(userListItemControl); this.Items.Add(channelUser.Name, userListItemControl); Application.DoEvents(); } //GUI-Kram ItemListContainer.SendToBack(); //Anhand des Channelnamens den Listennamen einstellen this.ListName = channel.Name; //Den Header anfertigen SetHeaderAppearance(Color.White, channel.BackColor, this.ListName, this.ItemDescription); RepaintHeader(); //Das Layout wieder aufnehmen this.ListContainer.ResumeLayout(false); //Und neu zeichnen lassen this.ListContainer.PerformLayout(); } catch (ArgumentException argEx) { MessageBox.Show("Ein Item war bereits in der Liste (Liste Doppelt erstellt?)\r\n" + argEx.ToString()); } }
/// <summary> /// Fügt dcer Userliste einen User hinzu /// </summary> /// <param name="user">Der hinzuzufügende User</param> /// <param name="backColor">Die Hintergrundfarbe die der Eintrag haben soll</param> public void AddUser(ChannelUser user, Color backColor) { try { //User hinzufügen UserListItemControl userListItemControl = new UserListItemControl(user, backColor); //Die Box für den User Oben anheften userListItemControl.Dock = DockStyle.Bottom; userListItemControl.OnItemSelectedChanged += new EventHandler <ItemSelectedChangedEventArgs>(nli_OnItemSelectedChanged); userListItemControl.OnItemRightClickShifted += new EventHandler <ItemRightClickShiftedEventArgs>(userListItemControl_OnItemRightClickShifted); //Das NickListItem in die Liste hinzufügen this.Items.Add(user.Name, userListItemControl); //Das Control zur GUI hinzufügen this.ItemListContainer.Controls.Add(userListItemControl); //Den User selbst hinzufügen this.AllUsers.Add(user.Name, user); RepaintHeader(); } catch (ArgumentException argEx) { MessageBox.Show("Item wurde bereits hinzugefügt\r\n" + argEx.ToString()); } }
public ItemSelectedChangedEventArgs(bool Selected, UserListItemControl Item) { _Selected = Selected; _Item = Item; }