им делать на контекстное меню можно найти на RightClick как в действительности код-редактор что-то вроде этого: Добавление 2 обработчика событий в 1 Управление
и им уже сделано с вырезать, копировать и вставлять с помощью используя этот код:
private void rtb_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
MenuItem[] menuItems = new MenuItem[] {
new MenuItem("Cut", new System.EventHandler(this.CutMenuItemClick)),
new MenuItem("Copy", new System.EventHandler(this.CopyMenuItemClick)),
new MenuItem("Paste", new System.EventHandler(this.PasteMenuItemClick)),
ContextMenu rightcontext = new ContextMenu(menuItems);
int xOffset = Cursor.Position.X - DtexteditoR.ActiveForm.Location.X;
int yOffset = Cursor.Position.Y - DtexteditoR.ActiveForm.Location.Y;
rightcontext.Show(DtexteditoR.ActiveForm, new Point(xOffset, yOffset));
}
}
private void CutMenuItemClick(object sender, EventArgs e)
{
rtb.Cut();
}
private void CopyMenuItemClick(object sender, EventArgs e)
{
rtb.Copy();
}
private void PasteMenuItemClick(object sender, EventArgs e)
{
rtb.Paste();
}
им с помощью WinForms с динамическим управлением (не использовать дизайнер) и мой вопрос был о том, как сделать несколько обработчик событий в элементе управления (различные обработчик) что-то вроде этого:
new MenuItem("Copy", new System.EventHandler(this.CopyMenuItemClick) || new System.Windows.Forms.MeasureItemEventHandler(this.MeasureCopy)),
private void MeasureCopy(object obj,
MeasureItemEventArgs miea)
{
MenuItem mi = (MenuItem)obj;
// Get standard menu font so that the text in this
// menu rectangle doesn't look funny with a
// different font
Font menuFont = SystemInformation.MenuFont;
StringFormat strfmt = new StringFormat();
SizeF sizef =
miea.Graphics.MeasureString(mi.Text, menuFont, 1000, strfmt);
// Get image so size can be computed
Bitmap bmMenuImage = new Bitmap(typeof(NewForm), "COPY.BMP");
// Add image height and width to the text height and width when
// drawn with selected font (got that from measurestring method)
// to compute the total height and width needed for the rectangle
miea.ItemWidth = (int)Math.Ceiling(sizef.Width) + bmMenuImage.Width;
miea.ItemHeight = (int)Math.Ceiling(sizef.Height) + bmMenuImage.Height;
}
для меня, чтобы добавить изображение рядом с «Копировать».
, как сделать эту вещь:
new MenuItem("Copy", new System.EventHandler(this.CopyMenuItemClick) || new System.Windows.Forms.MeasureItemEventHandler(this.MeasureCopy)),
правильный путь .thanks!
Я не знаю, если я правильно понимаю, но если вы используете несколько событие обработчиков для одного события (из одного элемента управления), то какой обработчик события будет запущен? первый или второй? Скажем, если я нажимаю копию за один раз, то CopyMenuItemClick уволен, но в другой раз это был MeasureCopy. Но если вы скажете, что после CopyMenuItemClick тогда это время, когда используется MeasureCopy, я думаю, что это имеет смысл. См. Эту ссылку здесь http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/70cc4de1-cdda-4f1b-92a5-407443b2f591. – Edper