toolStrip上的点击后按钮下凹状态问题

sageking2 2009-01-11 04:58:40
目标:Form1_Load时,按下toolStrip上的tbb_Cursor第一个按钮.尔后的操作,每次点击toolStrip上某个按钮时,它就呈下凹状态(其实就是普通的按钮被按下时的样子),其他按钮则呈正常状态.

我看C#1.0里是用toolBar.
在Form1_Load()事件里加上:
this.tbb_Cursor.Pushed = true;
然后

private void MainToolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if (e.Button.Pushed)
{
foreach (ToolBarButton btn in MainToolBar.Buttons)
{
if (btn.Pushed && !btn.Equals(e.Button))
{
btn.Pushed = false;//其他按钮就呈正常状态(没被按下)
}
}
}
}


C#2.0里变成toolStrip了.我在
在Form1_Load()事件里加上:
tsB_Cursor.Checked = true; //如果有Pushed,我就不会用这样的来表示选中了

然后

private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
foreach (ToolStripItem vItem in toolStrip1.Items)
{
if (vItem is ToolStripButton)
{
if (vItem.Equals(e.ClickedItem))
{
//怎么办啊?.好不容易找到两个属性可以区别于其他按钮,居然是只读的
//vItem.Pressed=
//vItem.Selected=
}
}
}
}

...全文
566 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
百战天王 2009-09-23
  • 打赏
  • 举报
回复
用CType把ToolStripItem转换成ToolStripButton,就可以用CheckState属性了
sageking2 2009-01-12
  • 打赏
  • 举报
回复
这个哥们儿看来比较倔
我是先在程序里面试了下不行,所以才那么回复的.
我最后实在没办法就用.Enable属性,变化后那个按钮会变深色来表示我的下凹的.
Thank you all the same.
jxxx2967 2009-01-12
  • 打赏
  • 举报
回复
这个哥们儿看来比较倔

vItem as toolStripButton

这叫强制类型转换,新定义了一个引用,实例还是vItem所引用的的对象。
为什么肯定没用呢?

要学会相信别人,哥们儿。
sageking2 2009-01-12
  • 打赏
  • 举报
回复
这样新定义了出的btn,肯定没用的.
jxxx2967 2009-01-11
  • 打赏
  • 举报
回复
toolStripButton btn = vItem as toolStripButton;
btn.CheckState = CheckState.Unchecked;
sageking2 2009-01-11
  • 打赏
  • 举报
回复

if (vItem.Equals(e.ClickedItem))
{
//关键是到了这里vItem.你看看下拉输入提示里根本没有CheckState
}
jxxx2967 2009-01-11
  • 打赏
  • 举报
回复
vItem.Checked = true;
vItem.CheckState = CheckState.Unchecked;

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧