2011-01-07 2 views
0

Я знаю, как добавить элемент (checkbox) в панель инструментов динамически, но я хочу добавить флажок, который существует в форме. Я попытался с помощью кодаToolstripmenu add item

Dim chkboxhost As ToolStripControlHost 
chkboxhost = New ToolStripControlHost(CheckBox1) 
toolStrip1.Items.Add(chkboxhost) 

, но это делает уже существующий флажок, перейдите в левом верхнем углу экрана и когда ToolStrip это нажать кажется. Поэтому я хочу добавить флажок в меню, не перейдя в верхний левый угол, никаких идей?

+0

Обычно это делается с помощью 'ToolStripMenuItem', устанавливая' CheckOnClick = true'. Это не соответствует вашим потребностям? –

+0

О, я вижу, что вы просите - у вас есть один флажок, который вы хотите отображать в двух местах. Это невозможно сделать - каждый флажок имеет свою собственную позицию. Вам нужно будет создать два флажка и настроить каждый из них, чтобы обновить статус «Проверено» друг друга в событии «CheckedChanged». Или это можно сделать более легко, если вы используете привязку данных: просто привяжите их к одному и тому же свойству, и все будет сделано, они будут автоматически обновлять друг друга * (или, вернее, BindingSource обновит их оба) * –

ответ

0

ответ BlueRaja является ответом, вы можете сделать это несколькими способами, здесь два:

Во-первых:

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click 
    ToolStripButton2.Checked = ToolStripButton1.Checked 
    'Do whatever you want with your buttons 
End Sub 

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click 
    ToolStripButton1.Checked = ToolStripButton2.Checked 
    'Do whatever you want with your buttons 
End Sub 

Другой подход:

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click 
    'Do whatever you want with your buttons 
End Sub 

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click 
    'Do whatever you want with your buttons 
End Sub 

Private Sub ToolStripButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.CheckedChanged 
    ToolStripButton2.Checked = ToolStripButton1.Checked 
End Sub 

Private Sub ToolStripButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.CheckedChanged 
    ToolStripButton1.Checked = ToolStripButton2.Checked 
End Sub 

Я предпочитаю первый явно.