日期:2014-5-19 浏览次数:20223次

mdi 窗体
最大化时(最大化,最小化按钮在主窗体菜单的上面)我希望它在主窗体菜单下面的toolstrip上显示   怎么办?谢谢!

------解决方案--------------------
在toolstrip中插入两个按钮,最大化,最小化
点击时SendMessage(form.Handle ,0x0112,0xF020,0);//最小化
SendMessage(form.Handle ,0x0112,0xF120,0);//最大化
记得加入
[DllImport( "User32.dll ",EntryPoint = "SendMessage ")]
private static extern int SendMessage(IntPtr hwnd,int Msg,int wParam,int lParam);

using System.Runtime.InteropServices;
------解决方案--------------------
好像不可以做的到,没有办法的.

------解决方案--------------------
思路:
1 当最大化时将wnd.FormBorderStyle = None;//也就是不要windows的最大最小化按钮
2 在客户区自己画按钮;
3 参考代码:


实现的功能:在窗体上绘制简单按钮并在单击它时关闭窗体。
方法:新建一个C#Windows应用程序,命名默认。

// Form1.Designer.cs

//
// Form1
//
...
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
...

// Form1.cs
// ...
private void Form1_Paint(object sender, PaintEventArgs e)
{
// Create pen.
Pen redPen = new Pen(Color.Red, 1);

// Create location and size of rectangle.
int x = 100;
int y = 100;
int width = 10;
int height = 10;

// Draw rectangle and Line to screen.
e.Graphics.DrawRectangle(redPen, x, y, width, height);
e.Graphics.DrawLine(redPen, 100, 100, 110, 110);
e.Graphics.DrawLine(redPen, 110, 100, 100, 110);
}

private void Form1_MouseDown(Object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if((e.X > = 100 && e.X <= 110) && (e.Y > = 100 && e.Y <= 110))
this.Close();
}

}
// ...