2013-07-04 4 views
2

Я нахожусь в небольшом проекте, где я пытаюсь создать свой собственный веб-браузер.Игра с кнопками в Windows Forms

Я узнал, что веб-браузер бесполезен без функции «Новые вкладки», поэтому я подумал, что могу использовать кнопки в качестве вкладок, и каждый раз, когда я нажимаю «ctrl + T», появляется новая кнопка.

Проблемы я столкнулся это: -Array кнопок таким образом, что делает возможным для меня, чтобы породить новую кнопку каждый раз, когда я нажмите «Ctrl + T»

-Когда кнопка порождена его следует кликать и отключать при нажатии, пока не щелкнет другая вкладка (кнопка).


На данный момент я сосредоточиться на получении 1 таб работать, так вот пример:

private void TB_Address_KeyPress(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.T && e.Modifiers == Keys.Control) 
     { 
      Button tabButton = new Button(); 
      tabButton = new System.Windows.Forms.Button(); 
      tabButton.BackColor = System.Drawing.SystemColors.ActiveCaptionText; 
      tabButton.Cursor = System.Windows.Forms.Cursors.Hand; 
      tabButton.ForeColor = System.Drawing.Color.Lime; 
      tabButton.Location = new System.Drawing.Point(154, 32); 
      tabButton.Name = "tabButton"; 
      tabButton.Size = new System.Drawing.Size(152, 23); 
      tabButton.TabIndex = 13; 
      tabButton.Text = "Tab 2"; 
      tabButton.UseVisualStyleBackColor = false; 
      tabButton.Click += new System.EventHandler(this.tabButton_Click); 
      Controls.Add(tabButton); 
     } 
    } 

У меня тоже есть этот щелчок функции:

private void tabButton_Click(object sender, EventArgs e) 
    { 
     tab_1.Enabled = true; 
     tabButton.Enabled = false; 
    } 

"tab_1" является кнопка, созданная в режиме разработки. «tabButton.Enabled» отмечен красным цветом, потому что он не может найти tabButton. Я понимаю, почему его не найти. Но я понятия не имею, как решить проблему в хорошем смысле.

ответ

4

Вы назначая tabButton_Click ко всем кнопкам с этой линии:

tabButton.Click += new System.EventHandler(this.tabButton_Click); 

Просто отбрасываемой отправителя кнопку, и вы получите кнопку, который уволил событие:

void tabButton_Click(object sender, EventArgs e) 
{ 
    Button buttonSender = (Button) sender; 
    buttonSender.Enabled=false; 
} 

Вы не вывод "tab_1", потому что это недопустимое имя внутри области tabButton_Click. Вот почему вам нужно отдать объект отправителя на кнопку WindowsForms, а затем изменить его свойства.

+0

Все дело в том, что tab_1 найден потому, что он назначен в начале кода. tabButton не найден, потому что он назначен, когда я нажимаю ctrl + T. Но мне нужно найти способ обойти это. –

+0

Вы пробовали то, что я написал? –

+0

Нет, извините. Я довольно много начал и решил это гораздо проще. Мне не нужно создавать такие кнопки. Но спасибо за ответ :) –

0

Я собираюсь по-другому. Создание всех необходимых кнопок.

Извините за то, что потратил время.

 Смежные вопросы

  • Нет связанных вопросов^_^