void ShowSessionItemMenu(SessionInfo info, Point location) { ContextMenu menu = new ContextMenu(); MenuItem item1 = new MenuItem("删除", (s, e) => { NIM.Session.SessionAPI.DeleteRecentSession(info.SessionType, info.Id, (a, b, c) => { DeleteSession(info); }); }); MenuItem item2 = new MenuItem("标记为已读", (s, e) => { NIM.Session.SessionAPI.SetUnreadCountZero(info.SessionType, info.Id, (a, b, c) => { NIM.Session.SessionAPI.SetUnreadCountZero(info.SessionType, info.Id, null); Update(info, b); }); }); MenuItem item3 = new MenuItem("查看", (s, e) => { NIM.Messagelog.MessagelogAPI.QuerylogById(info.MsgId, (a, b, c) => { if (a != NIM.ResponseCode.kNIMResSuccess || c == null) { return; } Action action = () => { MsgInfoForm form = new MsgInfoForm(c); form.Show(); }; _sessionListBox.Invoke(action); }); }); string itemText = info.IsPinnedOnTop ? "取消置顶" : "置顶"; MenuItem item4 = new MenuItem(itemText, (s, e) => { NIM.Session.SessionAPI.PinSessionOnTop(info.SessionType, info.Id, !info.IsPinnedOnTop, (a, b, c) => { DemoTrace.WriteLine("会话置顶:", a, b.Id, b.IsPinnedOnTop); if (a == 200) { Update(info, b); } }); }); menu.MenuItems.Add(item1); if (info.Status == NIM.Messagelog.NIMMsgLogStatus.kNIMMsgLogStatusUnread) { menu.MenuItems.Add(item2); } menu.MenuItems.Add(item3); menu.MenuItems.Add(item4); menu.Show(_sessionListBox, location); }
void ShowContextMenu(Point location, ListViewItem listItem) { ContextMenu contextMenu = new ContextMenu(); var msg = listItem.Tag as NIM.NIMIMMessage; MenuItem item1 = new MenuItem("查看详情", (s, e) => { if (msg != null) { MsgInfoForm form = new MsgInfoForm(msg); form.StartPosition = FormStartPosition.CenterParent; form.Show(); } }); MenuItem item2 = new MenuItem("清空未读数", (s, e) => { if (msg != null) { NIM.Session.SessionAPI.SetUnreadCountZero(NIMSessionType.kNIMSessionTypeP2P, msg.SenderID, (a, b, c) => { DemoTrace.WriteLine("清空未读数:" + c.ToString()); }); } }); MenuItem item3 = new MenuItem("查询最近会话", (s, e) => { if (msg != null) { NIM.Session.SessionAPI.QueryAllRecentSession((x, y) => { DemoTrace.WriteLine("total count:" + x.ToString() + " " + y.Dump()); }); } }); contextMenu.MenuItems.Add(item1); contextMenu.MenuItems.Add(item2); contextMenu.MenuItems.Add(item3); contextMenu.Show(_targetListView, location); }
void ShowContextMenu(Point location, ListViewItem listItem) { ContextMenu contextMenu = new ContextMenu(); var msg = listItem.Tag as NIM.NIMIMMessage; MenuItem item1 = new MenuItem("查看详情", (s, e) => { if (msg != null) { MsgInfoForm form = new MsgInfoForm(msg); form.StartPosition = FormStartPosition.CenterParent; form.Show(); } }); MenuItem item2 = new MenuItem("清空未读数", (s, e) => { if (msg != null) { NIM.Session.SessionAPI.SetUnreadCountZero(NIMSessionType.kNIMSessionTypeP2P, msg.SenderID, (a, b, c) => { DemoTrace.WriteLine("清空未读数:" + c.ToString()); }); } }); MenuItem item3 = new MenuItem("查询最近会话", (s, e) => { if (msg != null) { NIM.Session.SessionAPI.QueryAllRecentSession((x, y) => { DemoTrace.WriteLine("total count:" + x.ToString() + " " + y.Dump()); }); } }); MenuItem item4 = new MenuItem("群消息回执", (s, e) => { List <NIMIMMessage> msgs = new List <NIMIMMessage>(); msg.NeedTeamAck = 1; msgs.Add(msg); NIM.Team.TeamAPI.MsgAckRead(msg.ReceiverID, msgs, (data) => { }); }); MenuItem item5 = new MenuItem("群消息未读成员", (s, e) => { msg.NeedTeamAck = 1; NIM.Team.TeamAPI.QueryMsgUnreadList(msg.ReceiverID, msg, (data) => { }); }); contextMenu.MenuItems.Add(item1); contextMenu.MenuItems.Add(item2); contextMenu.MenuItems.Add(item3); contextMenu.MenuItems.Add(item4); contextMenu.MenuItems.Add(item5); contextMenu.Show(_targetListView, location); }