关于 SplitContainer控件的分隔线焦点 和 构造函数重写,,,求助!

wwh999 2009-05-30 12:18:22
1.SplitContainer控件在拖拽分隔线之后,焦点会停留在分隔线上,很难看.
其TabStop属性改后,仍然如此(只是设计时不显示).
如何解决? <20分> 好不容易看见个好东西,高兴劲没过,这个焦点的破事整晕了.

2.网上查了一些资料,像如上的问题或者Picture/Label透明之类的问题,很多都说要重写控件的构造函数,这个不会,故请问下:
如果重写控制的构造函数?..建个控件类再继承了写还是?....不懂,最好给个例子,谢谢!
<50分>
...全文
303 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐NeMo 2009-06-01
  • 打赏
  • 举报
回复
Overrides就是重写的意思,你直接在sub 之后写onGotFocus。可以的。
wwh999 2009-06-01
  • 打赏
  • 举报
回复
wzuomin 说的很对.
有点不明白:
OnGotFocus怎么不能显示在InteliSense列表中,在我输入Protected overrides sub 之后?...有具体很多列表显示,但找不到onGotFocus
另外,重写控件这方面的基础资料讲解,在随.Net05的MSDN的哪一章?或者MSDN中文站哪儿?...给提供一个..谢谢

以上问题wzuomin已回复清楚,,这2个小点问题有知道的给补充一下.谢谢
沐NeMo 2009-05-31
  • 打赏
  • 举报
回复
参考:http://www.devcomponents.com/dotnetbar/
上面说要加的图:
wzuomin 2009-05-30
  • 打赏
  • 举报
回复
我是这么处理的,不知合不合意?

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test As New MyControl With {.Dock = DockStyle.Fill}
Dim txtBox1 As New TextBox With {.Multiline = True, .Dock = DockStyle.Fill}
Dim txtBox2 As New TextBox With {.Multiline = True, .Dock = DockStyle.Fill}
test.Panel1.Controls.Add(txtBox1)
test.Panel2.Controls.Add(txtBox2)
Me.Controls.Add(test)
End Sub

End Class

Public Class MyControl
Inherits System.Windows.Forms.SplitContainer

Public Sub New()
Me.SetStyle(ControlStyles.Selectable, False)
End Sub

Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
'MyBase.OnGotFocus(e)
Me.SelectNextControl(Me.ParentForm, True, False, True, True)
End Sub
End Class
Luoning9527 2009-05-30
  • 打赏
  • 举报
回复
第二个问题,
我觉着,是不是可以模拟键盘输入,按下tab键,将焦点转移到其他的空间上,
但是如果这样,会不会又引出其他的问题?其他控件得到了这个焦点,会不会依然令你烦恼?

不过,还是考虑一下下面这段简单的代码吧

System.Windows.Forms.SendKeys.SendWait("{TAB}")
沐NeMo 2009-05-30
  • 打赏
  • 举报
回复
我也有Splitter方面的问题,最好能设计到如:DevExpress.里面的Splitter扩展控件。现在没有找到那个图。
晚上加图。【也就是带有两个箭头的splitter】
---------
可显示/隐藏左边控件的Splitter 我自己有测试过。还不错。不过还不是理想的。要修改补充等等。
http://dev.csdn.net/article/63/63833.shtm
古今多少事 2009-05-30
  • 打赏
  • 举报
回复 1
第一个问题(VB2005):

Private Sub SplitContainer1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles SplitContainer1.MouseUp
SendKeys.Send("{Tab}")
End Sub

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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