gpt4 book ai didi

c# - .NET 窗体设计 - 按钮组 "Photoshop Tool Style"

转载 作者:行者123 更新时间:2023-11-30 18:05:34 28 4
gpt4 key购买 nike

如果您曾经使用过图像编辑应用程序,您就会知道有一组用于选择当前工具的按钮。 One tool must be selected at all times, and when a tool is selected, the button stays pressed until a different tool is selected.

我创建了一个 ToolStrip 控件并向其添加了我的 ToolStripButton 项,并设置了图像。对于每个按钮,我都将 CheckOnClick 属性设置为 true。

接下来我要做的是订阅每个按钮的 Checked 事件 并将其他按钮 CheckState 设置为未选中。不过,这似乎是一种黑客攻击。

.NET 是否有办法使用 ToolStrip 控件实现此目的,或者是否有更好的控件可供使用?

我正在使用 C# 和 VS 2010,目标是 .NET Framework 4

最佳答案

我认为没有办法在 ToolStrip 上拥有完全自动化的单选按钮。

但是,它可以半自动化:

在您的每个点击事件中调用 SetToolButtonsChecked(sender);

    private void toolStripButton1_Click(object sender, EventArgs e)
{
SetToolButtonsChecked(sender);
}

实现为:

    private static void SetToolButtonsChecked(object sender)
{
ToolStripButton btn = sender as ToolStripButton;
ToolStrip strip = btn.GetCurrentParent();
foreach (ToolStripItem item in strip.Items)
{
if (!(item is ToolStripButton)) continue;
ToolStripButton btnTemp = item as ToolStripButton;
if (!btnTemp.CheckOnClick) continue;
btnTemp.Checked = btnTemp.Equals(btn);
}
}

如果按钮具有属性 CheckOnClick = true,此方法将迭代同一工具条上的所有按钮并相应地设置 Checked 属性。

关于c# - .NET 窗体设计 - 按钮组 "Photoshop Tool Style",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456864/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com