Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение выбранного пункта в contextmenustrip 
:(
    Опции темы
fe2so43
  Дата 13.6.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



Создаю contextmenustrip с 10 пунктами (опциями, Items на худой конец).В каждом пункте по 10 подпунктов.Это меню привязываю ко всем контролам типа textbox.
Проблема в том, что я не знаю как написать общий обработчик нажатия на пункт - чтобы не описывать действия при нажатии на каждый пункт или подпункт,а чтобы обрабатывался выбор любого пункта,а потом определялось, что за пункт был выбран и выбиралось его название.

В contextmenu это делалось примерно так:

Код

private void Pop_Up_Clicked(object sender,EventArgs e)
{
MenuItem miClicked = (MenuItem)sender; //узнаем какой пункт выбрали
string item=miClicked.text; //забираем его название
}


Как сделать то же самое в contextenustrip ума не приложу  smile
PM MAIL   Вверх
tol05
Дата 13.6.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 11
Всего: 170



Код

private void MyHandler(object sender,EventArgs e)
{
ToolStripMenuItem mi = (ToolStripMenuItem)sender; //узнаем какой пункт выбрали
...
}





--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
fe2so43
Дата 13.6.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



я уже делал так:

Код

private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            ToolStripMenuItem mi = (ToolStripMenuItem)sender;
            string item = mi.Text;
        }


и нарывался на 
" System.InvalidCastException was unhandled
  Message="Не удалось привести тип объекта \"System.Windows.Forms.ContextMenuStrip\" к типу \"System.Windows.Forms.ToolStripMenuItem\"." "

PM MAIL   Вверх
tol05
Дата 13.6.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 11
Всего: 170



Вот пример с тремя подпунктами контекстного меню и одним обработчиком на всех
Код

public partial class Form1 :Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void toolStripMenuItem2_Click(object sender, EventArgs e)
    {
      ToolStripItem item = sender as ToolStripItem;
      if(Equals(item, null)) return;
      Text = item.Name;
    }
  }

Код

  partial class Form1
  {
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
      if(disposing && (components != null))
      {
        components.Dispose();
      }
      base.Dispose(disposing);
    }

    #region Windows Form Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.components = new System.ComponentModel.Container();
      this.richTextBox1 = new System.Windows.Forms.RichTextBox();
      this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
      this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
      this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
      this.contextMenuStrip1.SuspendLayout();
      this.SuspendLayout();
      // 
      // richTextBox1
      // 
      this.richTextBox1.ContextMenuStrip = this.contextMenuStrip1;
      this.richTextBox1.Location = new System.Drawing.Point(2, 3);
      this.richTextBox1.Name = "richTextBox1";
      this.richTextBox1.Size = new System.Drawing.Size(861, 648);
      this.richTextBox1.TabIndex = 0;
      this.richTextBox1.Text = "";
      // 
      // contextMenuStrip1
      // 
      this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.toolStripMenuItem2,
            this.toolStripMenuItem3,
            this.toolStripMenuItem4});
      this.contextMenuStrip1.Name = "contextMenuStrip1";
      this.contextMenuStrip1.Size = new System.Drawing.Size(84, 70);
      // 
      // toolStripMenuItem2
      // 
      this.toolStripMenuItem2.Name = "toolStripMenuItem2";
      this.toolStripMenuItem2.Size = new System.Drawing.Size(152, 22);
      this.toolStripMenuItem2.Text = "1";
      this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click);
      // 
      // toolStripMenuItem3
      // 
      this.toolStripMenuItem3.Name = "toolStripMenuItem3";
      this.toolStripMenuItem3.Size = new System.Drawing.Size(83, 22);
      this.toolStripMenuItem3.Text = "2";
      this.toolStripMenuItem3.Click += new System.EventHandler(this.toolStripMenuItem2_Click);
      // 
      // toolStripMenuItem4
      // 
      this.toolStripMenuItem4.Name = "toolStripMenuItem4";
      this.toolStripMenuItem4.Size = new System.Drawing.Size(83, 22);
      this.toolStripMenuItem4.Text = "3";
      this.toolStripMenuItem4.Click += new System.EventHandler(this.toolStripMenuItem2_Click);
      // 
      // Form1
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(865, 703);
      this.Controls.Add(this.richTextBox1);
      this.Name = "Form1";
      this.Text = "Form1";
      this.contextMenuStrip1.ResumeLayout(false);
      this.ResumeLayout(false);

    }

    #endregion

    private System.Windows.Forms.RichTextBox richTextBox1;
    private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
    private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
    private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
    private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
  }



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
fe2so43
Дата 13.6.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.6.2007

Репутация: нет
Всего: нет



Разобрался. Большое спасибо  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.