我做的方法:
放置三个控件的顺序
Panel1(Dock Left)
Splitter1 (Dock Left)
Panel2 (Dock Fill)
放置三个控件的顺序
Panel1(Dock Left)
Splitter1 (Dock Left)
Panel2 (Dock Fill)
解决方案 »
- MS官网提供VS2010简体中文下载了。。。
- UGridCustomizer.customizer()
- 如何抽象数据对象
- 如何在内网里面透过Http代理服务器和外网机器建立socket连接(在线等)
- textbox的边框如何改变颜色?,重写也可以!
- vs2005中datagridview在设计模式下手动添加出来的列。为什么不能用。
- 一道简单的面试题
- C# 子窗体传值
- viso 中uml图,如何正向工程生成代码?
- 请求帮助(关于sqlDataAdapter.Update)
- mdi子窗体FormBorderStyle=none,WindowState=normal,在show出窗体时为什么标题栏会闪一下?
- DropDownList绑定后点击查询后,值变为空的问题
this.Panel1.Visible=!this.Panel1.Visible;不过这样会在窗口中Splitter原来的地方有一条灰色的线。
尝试过该变Panel的Width属性,貌似没有作用。
LZ可以试试
首先写一个类,实现向一个SPLITTER控件里面放一个Lable控件,点击Lable后实现显示隐藏功能
using System;
using System.Windows.Forms;namespace WindowsApplication1
{
/// <summary>
/// showSplitter 的摘要说明。
/// 可显示/隐藏左边控件的SPLITTER
/// </summary>
public class showSplitter
{
public static void AddShowHideControl(System.Windows.Forms.Splitter mysplitter){
//在控件mysplitter 上面加一个Lable控件
System.Windows.Forms.Label lb=new System.Windows.Forms.Label();
lb.Name="lbzzm";
lb.Text="<<";
lb.AutoSize=true;
lb.Location=new System.Drawing.Point(lb.Location.X,(int)Math.Ceiling(mysplitter.Height/2));
lb.Cursor=Cursors.Hand;
lb.ForeColor=System.Drawing.Color.Red;
mysplitter.Width=20;
mysplitter.Controls.Add(lb); //事件的引发
lb.Click+=new EventHandler(lb_Click); //设置一个鼠标悬停在控件时的说明文字
ToolTip tt=new ToolTip();
tt.SetToolTip(lb,"显示/隐藏左边的的控件");
} private static void lb_Click(object sender, System.EventArgs e)
{
//得到引发事件的对象Label
Label lb=(Label)sender;
//定义一个目标替代控件体
Control targetctrl=null;
//得到Splitter的控件
Splitter sl=(Splitter)lb.Parent;
//得到窗体(含各个子控件的窗体)控件
Control pctrl=sl.Parent; //遍历窗体内的所有控件
foreach(Control temp in pctrl.Controls)
{
if(!temp.Equals(sl)){
if(temp.Dock==DockStyle.Left & (!temp.Visible |temp.Left<sl.Left))
{
targetctrl=temp;
break;
}
}
} if(targetctrl!=null)
{
if(lb.Text=="<<")
{
//隐藏左边控件
targetctrl.Visible=false;
lb.Text=">>";
}
else
{
//显示左边控件
targetctrl.Visible=true;
lb.Text="<<";
}
}
}
}
}使用时,在窗体的初始化代码中加入如下所示的代码即可:
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
showSplitter.AddShowHideControl(this.splitter1); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//