像QQ里的那种推拉式菜单,C#该如何实现!
有现成的控件吗?还是说只能自己写,请高手提示!
本人用C#写!跪求代码!

解决方案 »

  1.   

    可以用js结合DIV等块级元素来实现。
    动态控制块级元素的显示和隐藏(style.display)。
      

  2.   

    在csdn的下载里有个日记本程序,你可以参考下啊==================================
    =  CSDN助手 全面支持CSDN论坛     =
    =  监视、收藏、历史、签名走马灯  =
    ==================================
      

  3.   

    现成控件多:  DotnetBar
      Janus
      ComponentOne
      

  4.   

    用NetAdvantage
    http://lib.verycd.com/2006/07/17/0000111150.html我用的就是这个,可以实现
      

  5.   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    /*
     * 算法简述(主要分为如下三个步骤):
     * 
     * 1、首先将该按钮上面的按钮推上去(相当于点击被“推上去”的这个按钮),在推动的过程中,
     *    如果被推动的按钮的上面还有另一个按钮,则重复这个过程(步骤 1)
     * 2、然后将自己推上去
     * 3、最后将该按钮下面的按钮推下去(相当于点击被“推下去”的这个按钮),在推动的过程中,
     *    如果被推动的按钮的上面还有另一个按钮,则重复这个过程(步骤 3)
     * 
     * 整个过程就像你站在队伍中,你想前进,首先你得告诉站在你前面的人前进,然后你必须等待,直到你前面的人
     * 前进之后你才能够前进。(你前面的人同样必须和你做同样的事,这个过程直到传达到第一个人为止)
     * 
     * 
     * 
     * 还没有明白吗?没关系,我们来举例说明这个算法:
     * 为了方便理解程序,我们以“按钮1”、“按钮2”、“按钮3”和“按钮4”这四个从上到下依次排列的按钮为例,
     * 我们假设“按钮3”被点击:
     * 1、将“按钮1”推到最顶端
     * 2、将“按钮2”推到“按钮1”的下方。
     * 3、将自己(“按钮3”)推上去;
     * 4、将“按钮4”推下去。
     * 
     * 
     * 本程序中主要运用了属性的特点。
     * 因为使用的是中文编程,所以就不再详细说明了。
     */
    namespace QQ3000
    {
    /// 
    /// Summary description for Form1.
    /// 
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.GroupBox groupBox1;
    private System.Windows.Forms.Button 按钮_我的好友;
    private System.Windows.Forms.Button 按钮_陌生人;
    private System.Windows.Forms.Button 按钮_黑名单;

    private int 陌生人
    {
    get
    {
    return 按钮_陌生人.Top;
    }
    set
    {
    if( value < 按钮_陌生人.Top )
    {
    按钮_陌生人.Top = 按钮_我的好友.Top + 按钮_我的好友.Height;
    }
    else
    {
    黑名单 ++;
    按钮_陌生人.Top = 按钮_黑名单.Top - 按钮_陌生人.Height;
    }
    }
    }
    private int 黑名单
    {
    get
    {
    return 按钮_黑名单.Top;
    }
    set
    {
    if( value < 按钮_黑名单.Top )
    {
    陌生人 --;
    按钮_黑名单.Top = 按钮_陌生人.Bottom + 1;
    }
    else
    {
    按钮_黑名单.Top = groupBox1.Height - 按钮_陌生人.Height;
    }
    }
    }
    /// 
    /// Required designer variable.
    /// 
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent(); //
    // TODO: Add any constructor code after InitializeComponent call
    //
    } /// 
    /// Clean up any resources being used.
    /// 
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// 
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// 
    private void InitializeComponent()
    {
    this.按钮_黑名单 = new System.Windows.Forms.Button();
    this.按钮_陌生人 = new System.Windows.Forms.Button();
    this.groupBox1 = new System.Windows.Forms.GroupBox();
    this.按钮_我的好友 = new System.Windows.Forms.Button();
    this.groupBox1.SuspendLayout();
    this.SuspendLayout();
    // 
    // 按钮_黑名单
    // 
    this.按钮_黑名单.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
    | System.Windows.Forms.AnchorStyles.Right);
    this.按钮_黑名单.Location = new System.Drawing.Point(0, 48);
    this.按钮_黑名单.Name = "按钮_黑名单";
    this.按钮_黑名单.Size = new System.Drawing.Size(97, 24);
    this.按钮_黑名单.TabIndex = 2;
    this.按钮_黑名单.Text = "黑 名 单";
    this.按钮_黑名单.Click += new System.EventHandler(this.按钮_黑名单_单击);
    // 
    // 按钮_陌生人
    // 
    this.按钮_陌生人.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
    | System.Windows.Forms.AnchorStyles.Right);
    this.按钮_陌生人.Location = new System.Drawing.Point(0, 24);
    this.按钮_陌生人.Name = "按钮_陌生人";
    this.按钮_陌生人.Size = new System.Drawing.Size(97, 24);
    this.按钮_陌生人.TabIndex = 1;
    this.按钮_陌生人.Text = "陌 生 人";
    this.按钮_陌生人.Click += new System.EventHandler(this.按钮_陌生人_单击);
    // 
    // groupBox1
    // 
    this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
    | System.Windows.Forms.AnchorStyles.Right);
    this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
    this.按钮_黑名单,
    this.按钮_陌生人,
    this.按钮_我的好友});
    this.groupBox1.Location = new System.Drawing.Point(8, 8);
    this.groupBox1.Name = "groupBox1";
    this.groupBox1.Size = new System.Drawing.Size(97, 352);
    this.groupBox1.TabIndex = 0;
    this.groupBox1.TabStop = false;
    // 
    // 按钮_我的好友
    // 
    this.按钮_我的好友.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
    | System.Windows.Forms.AnchorStyles.Right);
    this.按钮_我的好友.Name = "按钮_我的好友";
    this.按钮_我的好友.Size = new System.Drawing.Size(97, 24);
    this.按钮_我的好友.TabIndex = 0;
    this.按钮_我的好友.Text = "我 的 好 友";
    this.按钮_我的好友.Click += new System.EventHandler(this.按钮_我的好友_单击);
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(113, 378);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
      this.groupBox1});
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
    this.MaximizeBox = false;
    this.MinimizeBox = false;
    this.Name = "Form1";
    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    this.Text = "QQ3000";
    this.groupBox1.ResumeLayout(false);
    this.ResumeLayout(false); }
    #endregion /// 
    /// The main entry point for the application.
    /// 
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void 按钮_我的好友_单击(object sender, System.EventArgs e)
    {
    陌生人 ++;
    } private void 按钮_陌生人_单击(object sender, System.EventArgs e)
    {
                陌生人 --;
    黑名单 ++;
    } private void 按钮_黑名单_单击(object sender, System.EventArgs e)
    {
    陌生人 --;
    黑名单 --;
    }
    }
    }
      

  6.   

    发一份源程序,谢谢了。[email protected]