C#窗体的状态栏实现起来是不是很复杂?

hejialin666 2010-02-25 09:58:08
在做一个文本的编辑器,类似于Word的那种,比Word简单些,但是在上面的工具栏(menuStrip)里也有很多选项,下面有两排toolStrip。
现在想加一个状态栏,实现鼠标在哪里,状态栏就显示相应的信息。如下图:



这种功能实现起来是不是很麻烦?要一个标签一个标签的写事件呀?有什么快的方法吗?
...全文
652 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
hejialin666 2010-02-26
  • 打赏
  • 举报
回复
引用 13 楼 nimingxin1987 的回复:
引用 11 楼 hejialin666 的回复:是Enabled=false  不是Visible=false , 所以标签还可以看到,只是是灰色的,这时也希望在状态栏中显示它的tag信息。
那就不要用Enabled=false,对于想让它失效的控件,就把他的文字颜色改成灰色,然后在MouseDown事件里判断,如果他字的颜色是灰色的,就阻止点击事件

也是个法,在没有更好的方法之前,我先试一下!
nixiang12 2010-02-25
  • 打赏
  • 举报
回复
用tag 的确很好做
hejialin666 2010-02-25
  • 打赏
  • 举报
回复
是Enabled=false 不是Visible=false , 所以标签还可以看到,只是是灰色的,这时也希望在状态栏中显示它的tag信息。
hejialin666 2010-02-25
  • 打赏
  • 举报
回复
引用 3 楼 nimingxin1987 的回复:
给每个按钮添加Tag,Tag里边存的就是你要显示的文字,然后让所有需要显示标签的按钮调用通一个MouseEnter事件,事件的内容就是状态栏的那部分文字=((转换一下类型)sender).Tag.Tostring()

有一个问题:
当标签的Enabled=false时,无法触发MouseEnter事件,这个怎么处理?我想实现也触发的效果!
woshieve 2010-02-25
  • 打赏
  • 举报
回复
这个并不复杂……初学的也可以实现……
深海之蓝 2010-02-25
  • 打赏
  • 举报
回复
状态栏直接拖拽
3楼的可以
王子样 2010-02-25
  • 打赏
  • 举报
回复
引用 3 楼 nimingxin1987 的回复:
给每个按钮添加Tag,Tag里边存的就是你要显示的文字,然后让所有需要显示标签的按钮调用通一个MouseEnter事件,事件的内容就是状态栏的那部分文字=((转换一下类型)sender).Tag.Tostring()


是个简单的方法。
maxwellno1 2010-02-25
  • 打赏
  • 举报
回复
写一个方法 把所有的菜单项的事件绑定到这个方法 为每个菜单项的tag属性值赋如"保存当前文档为另外的名称"、"打开一个文档"等信息


private void menuItem_MouseEnter(object sender,EventArgs e)
{
toolStripMenuItem t = sender as toolStripMenuItem;
if(t == null)
return;
label1.Text = t.tag.ToString();
}
lzsh0622 2010-02-25
  • 打赏
  • 举报
回复
3楼正解
viki117 2010-02-25
  • 打赏
  • 举报
回复
很麻烦吗?拉上一个状态栏控件,再给所有的工具栏继承一个事件,该事件是用来选中工具栏后把状态写到状态栏中
nimingxin1987 2010-02-25
  • 打赏
  • 举报
回复
给每个按钮添加Tag,Tag里边存的就是你要显示的文字,然后让所有需要显示标签的按钮调用通一个MouseEnter事件,事件的内容就是状态栏的那部分文字=((转换一下类型)sender).Tag.Tostring()
ztenv 2010-02-25
  • 打赏
  • 举报
回复
事件当然要自己写了,不过像这样的并不是很复杂,工作量也不大,
特别安静 2010-02-25
  • 打赏
  • 举报
回复
你把需要显示的提示信息放到每个菜单栏的TAG里面
然后在菜单的鼠标事件中显示触发事件的菜单栏的tag到状态栏不就ok了
nimingxin1987 2010-02-25
  • 打赏
  • 举报
回复
引用 17 楼 hnjhjzyyxgs 的回复:
给每个按钮添加Tag,Tag里边存的就是你要显示的文字,然后让所有需要显示标签的按钮调用通一个MouseEnter事件,事件的内容就是状态栏的那部分文字=((转换一下类型)sender).Tag.Tostring()

这个...你太卑鄙了...
hnjhjzyyxgs 2010-02-25
  • 打赏
  • 举报
回复
给每个按钮添加Tag,Tag里边存的就是你要显示的文字,然后让所有需要显示标签的按钮调用通一个MouseEnter事件,事件的内容就是状态栏的那部分文字=((转换一下类型)sender).Tag.Tostring()
galicurry 2010-02-25
  • 打赏
  • 举报
回复
放ToolTip控件就可以了,这个是用来显示信息的
ronaltn 2010-02-25
  • 打赏
  • 举报
回复
来学习

回复内容太长了
wuyq11 2010-02-25
  • 打赏
  • 举报
回复
使用状态栏控件StatusBar,点击MENUITEM
在StatusBar显示信息
控件
nimingxin1987 2010-02-25
  • 打赏
  • 举报
回复
引用 11 楼 hejialin666 的回复:
是Enabled=false  不是Visible=false , 所以标签还可以看到,只是是灰色的,这时也希望在状态栏中显示它的tag信息。

那就不要用Enabled=false,对于想让它失效的控件,就把他的文字颜色改成灰色,然后在MouseDown事件里判断,如果他字的颜色是灰色的,就阻止点击事件

110,536

社区成员

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

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

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