以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]树节点特殊显示 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=24825) |
||||
-- 作者:chnfo -- 发布时间:2012/10/24 10:39:00 -- [求助]树节点特殊显示 目的:选中表的节点,定位树节点(或直接选择树节点),然后使树节点特殊显示(例如底色为红色,也可以使节点名称字体变为红色,因为现在设置的选中底色是灰色,看得不太清楚) 我在表的PositionChanged事件里加了定位树节点代码。然后在树节点的AfterSelect事件里加了使节点底色变为红色的代码。 问题: (1)如果表里的行发生变化,原来树节点的底色红色没有消除,如果把表里的行全部点一遍,树节点也会都成红底色,起不到特殊显示的目的。 (2)我想在选定行之后,在StatusBar里显示行的Code列值,但在切换到表B时,左下角仍然提示的是表A的Code列值,容易引起误解。如何在切换表时,消除StatusBar的错误提示?
[此贴子已经被作者于2012-10-24 11:50:33编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/10/24 15:24:00 -- 哈哈,第一个问题,终于是模拟成功了。如下。 Dim tree As System.Windows.Forms.TreeView = mytree.BaseControl For i As Integer = tree.Controls.Count - 1 To 0 Step -1 If tree.Controls(i).Name = "SelectLab" Then tree.Controls.RemoveAt(i) End If Next Dim selCon As System.Windows.Forms.Control = tree.Controls("SelectLab") Dim label As New System.Windows.Forms.Label label.Name = "SelectLab" label.AutoSize = False label.BackColor = Color.Red label.ForeColor = e.Node.ForeColor label.Font = tree.Font mytree.BaseControl.Controls.Add(label) selCon = Label Dim node As System.Windows.Forms.TreeNode = tree.SelectedNode selCon.Size = new Size(node.Bounds.Width, node.Bounds.Height) selCon.Location = new Point(node.Bounds.X, node.Bounds.Y) selCon.Text = e.Node.Text |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/24 15:26:00 -- 第二个问题,比较简单,不是有MainTableChange事件么?项目属性那里。 然后设置 StatusBar.Message1 = "" |
||||
-- 作者:chnfo -- 发布时间:2012/10/24 16:21:00 -- 太佩服了。 五体投地…… 里面的一些代码都是专业程序员才能掌握的,对我来说要求太高了,只能“拿来主义”。 非常感谢。
[此贴子已经被作者于2012-10-24 16:24:01编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/26 16:59:00 -- [此贴子已经被作者于2012-11-26 16:58:49编辑过]
|