3

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

ToolStripButton1.Down := true;

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

当我将鼠标放在按钮上并单击时,按钮的外观如下:

在此处输入图像描述

您可以清楚地看到“放大”按钮是向下的。

这是当我尝试通过将 CheckOnClick 设置为 true 和 Checked true 来通过我的代码执行相同操作时按钮的外观。

在此处输入图像描述

在这张图片中,您唯一能看到的是它周围的蓝色框。我想如果我只使用按钮上的文本,你会看到整个按钮都被蓝色填充,表明它被按下了。

在此处输入图像描述

我的其他程序中也有工具条按钮,其作用方式相同,但我必须使用 imagelist 控件在按下或按下或检查与未按下或按下或检查之间切换。

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

4

2 回答 2

2

ToolStripButton.CheckOnClick属性设置为True。(可在.Behavior部分中找到Items Collection Editor。)

这使得单击它就像Down在 Delphi 中切换属性TSpeedButton(使其平坦或凹陷),并且if ToolStripButton1.Checked相当于if SpeedButton1.Down在 Delphi 中。

为了设置测试,我做了以下事情:

  • 创建了一个新的 Winforms 应用程序
  • 掉了一个ToolStrip到新的MainForm
  • 添加了四个ToolStripButton项目并为它们提供了图像,以使它们更易于查看。
  • 为它们中的每一个设置CheckOnClick属性True
  • Checked属性设置toolStripButton1True
  • 将以下代码添加到toolStripButton1.Click

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

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

一键按下

第一个按钮显然是向下的,其余的都是向上的。

点击toolStripButton1一次后:

两个按钮向下

现在第一个按钮向上(未选中),第二个和第四个按钮向下(选中)。(如果我在以后的帖子中做连续的图像,我应该更加注意尺寸的一致性。)

于 2012-12-05T14:53:28.110 回答
0

如果在 'Leave' 事件中已将此代码放置在前面的控件中。

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

    Me.AppliancesForSelectedFunctionToolStripButton.PerformClick()

    End Sub

我不知道您是否可以在表单加载中放置代码。希望这可以帮助。

于 2019-05-24T01:12:11.617 回答