如何以编程方式按下工具条按钮?

时间:2012-12-05 14:00:40

标签: checked delphi-prism toolstripbutton oxygene

我想在我的代码中按下工具条按钮,我似乎无法做到这一点。我知道在Delphi RAD Studio或XE上,您可以执行以下操作并按下按钮。

ToolStripButton1.Down := true;

我看到的唯一一个接近“向下”的ToolStripButton属性是已检查 true或false。如果我将其设置为true,它只会突出显示工具条按钮而不是按下它。

以下是我将鼠标放在其上并单击时按钮的外观:

enter image description here

您可以清楚地看到“放大”按钮已关闭。

通过设置CheckOnClick true和Checked true,我尝试通过代码执行同样的操作时,按钮的外观如下。

enter image description here

在此图片中,您唯一能看到的是它周围的蓝框。我想如果我只使用按钮上的文字,你会发现整个按钮都是蓝色,表示按下了它。

enter image description here

我的其他程序中也有工具条按钮,其行为方式相同,但我必须使用图像列表控件在按下或按下或检查的文本之间切换,而不是按下或按下或检查。

那么,有没有办法在Delphi Prism或C#中以编程方式按下ToolStripButton?

2 个答案:

答案 0 :(得分:2)

ToolStripButton.CheckOnClick属性设置为True。 (它位于Behavior的{​​{1}}部分。)

这使得点击它就像在Delphi Items Collection Editor中切换Down属性一样(使其平坦或沮丧),TSpeedButton相当于Delphi中的if ToolStripButton1.Checked

要设置测试,我执行了以下操作:

  • 创建了一个新的Winforms应用程序
  • if SpeedButton1.Down放到新的ToolStrip
  • 添加了四个MainForm项目并为其提供了图片,以便于查看。
  • 为每个人设置ToolStripButton属性为CheckOnClick
  • True的{​​{1}}属性设置为Checked;
  • 将以下代码添加到toolStripButton1

    方法MainForm.toolStripButton1_Click(sender:System.Object; e:System.EventArgs); 开始   toolStripButton2.Checked:= not toolStripButton2.Checked;   toolStripButton4.Checked:= toolStripButton2.Checked; 端;

运行应用程序(初始启动,True已选中且其他未选中):

One button down

第一个按钮显然已经关闭,其余按钮都已启动。

点击toolStripButton1.Click一次后:

Two buttons down

第一个按钮现在已启用(未选中),第二个按钮已关闭(已选中)。 (如果我在以后的帖子中连续拍摄图像,我应该更加注意尺寸的一致性。)

答案 1 :(得分:0)

如果已将此代码放置在“ Leave”事件中的上一个控件中。

    Private Sub PurposeComboBox_Leave(sender As Object, e As EventArgs) Handles PurposeComboBox.Leave

    Me.AppliancesForSelectedFunctionToolStripButton.PerformClick()

    End Sub

我不知道您是否可以将代码放入Form Load中。 希望这会有所帮助。