private void listView_Timeline_MouseClick(object sender, MouseEventArgs e) { ListView lv = getFocusedListView(); // 右クリック判定 if (e.Button != MouseButtons.Right) { return; } // フォーカス判定 ListViewItem item = lv.FocusedItem; if (!lv.FocusedItem.Bounds.Contains(e.Location)) { return; } Status tweet = getTweetFromId(this.tokens, item.SubItems[4].Text); if (tweet.RetweetedStatus != null) { tweet = tweet.RetweetedStatus; } ContextMenuStrip cMenu = new ContextMenuStrip(); // UserInfo ToolStripMenuItem menuItem_UserInfo = new ToolStripMenuItem(); menuItem_UserInfo.Text = "UserInfo"; menuItem_UserInfo.Click += delegate { try { Form_UserInfo f = new Form_UserInfo(this.tokens, tweet.User, this.user, this); f.Show(); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_UserInfo); // UserMarking ToolStripMenuItem menuItem_UserMarking = new ToolStripMenuItem(); menuItem_UserMarking.Text = "Marking"; menuItem_UserMarking.Click += delegate { try { markUserInAllItem((long)tweet.User.Id); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_UserMarking); if (tweet.InReplyToStatusId != null) { // Talk ToolStripMenuItem menuItem_Talk = new ToolStripMenuItem(); menuItem_Talk.Text = "Talk"; menuItem_Talk.Click += delegate { try { List<Status> talk = getTalk(tweet); Form_Talk f = new Form_Talk(this.tokens, talk, this); f.Show(); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Talk); } // RT ToolStripMenuItem menuItem_RT = new ToolStripMenuItem(); // menuItem_RT.Text = (bool)tweet.IsRetweeted ? "RT解除" : "RT"; menuItem_RT.Text = "RT"; menuItem_RT.Click += delegate { try { retweet(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_RT); // QT ToolStripMenuItem menuItem_QT = new ToolStripMenuItem(); menuItem_QT.Text = "QT"; menuItem_QT.Click += delegate { try { quoteTweet(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_QT); // favorte / Un-favorite ToolStripMenuItem menuItem_Favorite = new ToolStripMenuItem(); menuItem_Favorite.Text = (bool)tweet.IsFavorited ? "Un-favorite" : "favorite"; menuItem_Favorite.Click += delegate { try { favorite(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Favorite); // delete if (tweet.User.ScreenName == this.user.ScreenName) { ToolStripMenuItem menuItem_Delete = new ToolStripMenuItem(); menuItem_Delete.Text = "Delete"; menuItem_Delete.Click += delegate { try { this.tokens.Statuses.Destroy(id => tweet.Id); lv.Items.RemoveAt(lv.SelectedIndices[0]); string message = string.Format("Deleted: {0}", tweet.Text); changeStatus(message, NotificationStatus.DoDelete); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Delete); } cMenu.Show(Cursor.Position); }
private void listView_Tweet_MouseClick(object sender, MouseEventArgs e) { ListView lv = getFocusedListView(); // 右クリック判定 if (e.Button != MouseButtons.Right) { return; } // フォーカス判定 ListViewItem item = lv.FocusedItem; if (!lv.FocusedItem.Bounds.Contains(e.Location)) { return; } Status tweet = getTweetFromId(this.tokens, item.SubItems[2].Text); if (tweet.RetweetedStatus != null) { tweet = tweet.RetweetedStatus; } ContextMenuStrip cMenu = new ContextMenuStrip(); // UserInfo ToolStripMenuItem menuItem_UserInfo = new ToolStripMenuItem(); menuItem_UserInfo.Text = "UserInfo"; menuItem_UserInfo.Click += delegate { try { Form_UserInfo f = new Form_UserInfo(this.tokens, tweet.User, this.myData, this.parentForm); f.Show(); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_UserInfo); if (tweet.InReplyToStatusId != null) { // Talk ToolStripMenuItem menuItem_Talk = new ToolStripMenuItem(); menuItem_Talk.Text = "Talk"; menuItem_Talk.Click += delegate { try { List <Status> talk = getTalk(tweet); Form_Talk f = new Form_Talk(this.tokens, talk, this.parentForm); f.Show(); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Talk); } // RT ToolStripMenuItem menuItem_RT = new ToolStripMenuItem(); // menuItem_RT.Text = (bool)tweet.IsRetweeted ? "RT解除" : "RT"; menuItem_RT.Text = "RT"; menuItem_RT.Click += delegate { try { retweet(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_RT); // QT ToolStripMenuItem menuItem_QT = new ToolStripMenuItem(); menuItem_QT.Text = "QT"; menuItem_QT.Click += delegate { try { quoteTweet(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_QT); // favorte / Un-favorite ToolStripMenuItem menuItem_Favorite = new ToolStripMenuItem(); menuItem_Favorite.Text = (bool)tweet.IsFavorited ? "Un-favorite" : "favorite"; menuItem_Favorite.Click += delegate { try { favorite(tweet); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Favorite); // delete if (tweet.User.ScreenName == this.tokens.Account.VerifyCredentials().ScreenName) { ToolStripMenuItem menuItem_Delete = new ToolStripMenuItem(); menuItem_Delete.Text = "Delete"; menuItem_Delete.Click += delegate { try { this.tokens.Statuses.Destroy(id => tweet.Id); lv.Items.RemoveAt(lv.SelectedIndices[0]); string message = string.Format("Deleted: {0}", tweet.Text); } catch (Exception) { MessageBox.Show("存在しないツイートです。", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cMenu.Items.Add(menuItem_Delete); } cMenu.Show(Cursor.Position); }