PDA

View Full Version : سوال: جلوگیری از تغییر سایز وینذوز فرم با دبل کلیک



shahab.es
یک شنبه 18 آبان 1393, 19:51 عصر
سلام دوستان
ببخشید اگه تایپک تکراری میزنم
خیلی گشتم اما چیزی پیدا نکردم
میخوام سایز ویندوز فرمم به هیچ وجه عوض نشه
حتی با win+up و دبل کلیک
maximize Box و Minimize Box هم غیر فعال کردم
border هم غیر فعال کردم
لطف میکنید اگه کمک کنید...

veniz2008
یک شنبه 18 آبان 1393, 22:23 عصر
سلام.
من عین عنوان! تاپیکتون رو جستجو کردم و جواب زیر رو پیدا کردم (باید خاصیت FormBorderStyle رو بر روی یکی از حالاتی که Fix داره قرار بدی) :
http://barnamenevis.org/showthread.php?279641-%DA%86%D9%87-%D8%AC%D9%88%D8%B1%DB%8C-%D9%85%DB%8C%D8%B4%D9%87-%D8%A7%D8%B2-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D8%A7%D8%AC%D8%B1%D8%A7-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%DA%A9%D8%B1%D8%AF%D8%9F&highlight=%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB% 8C+%D8%A7%D8%B2+%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1+%D8 %B3%D8%A7%DB%8C%D8%B2+%D9%81%D8%B1%D9%85
موفق باشید.

shahab.es
یک شنبه 18 آبان 1393, 22:53 عصر
ممنون دوست خوبم
تایپک مفیدی بود اما جواب نگرفتم ازش
من border رو حذف کردم
به فرم قابلیت drag رو دادم
حالا با دبل کلیک رو هر قسمت maximize میشه
البته هنوز
مینی مایز سایر و ماکسی مایز
سایز
در پروپرتیس رو برابر با سایز کنونی فرم قرار ندادم.
بازم ممنون از توجهتون...

MehdiElexal
دوشنبه 19 آبان 1393, 14:29 عصر
شما کافیه رو فرم کلیک کنید و از پراپرتی ماکسیمایز و مینیمایز رو غیر فعال کنید
حتی خصوصیت ماکسیمایز سایز هم میتونید بدید
موفق باشید

shahab.es
دوشنبه 19 آبان 1393, 14:39 عصر
سلام اقا مهدی عزیز
ممنون از توجهت
این کارو کردم
اما هنوز با دابل کلیک روی فرم مکسیمایز میشه
قابلیت درگ فرم رو فعال کردم
فکر میکنم مشکل از اون باشه
بازم ممنونم

pesare
دوشنبه 19 آبان 1393, 14:52 عصر
از properties خاصیت های Minimize و Maximize رو False کنید

MehdiElexal
دوشنبه 19 آبان 1393, 15:51 عصر
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;

protected override void WndProc(ref Message message)
{
const int WM_NCLBUTTONDBLCLK = 0x00A3;

if (message.Msg == WM_NCLBUTTONDBLCLK)
{
message.Result = IntPtr.Zero;
return;
}

base.WndProc(ref message);

if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;

}

private void Form1_Load(object sender, EventArgs e)
{
FormBorderStyle = FormBorderStyle.None;
}

private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}

MehdiElexal
دوشنبه 19 آبان 1393, 15:54 عصر
درست شد مهندس ؟

shahab.es
دوشنبه 19 آبان 1393, 16:10 عصر
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;

protected override void WndProc(ref Message message)
{
const int WM_NCLBUTTONDBLCLK = 0x00A3;

if (message.Msg == WM_NCLBUTTONDBLCLK)
{
message.Result = IntPtr.Zero;
return;
}

base.WndProc(ref message);

if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;

}

private void Form1_Load(object sender, EventArgs e)
{
FormBorderStyle = FormBorderStyle.None;
}

private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}




خیلی خوب
واقعا ممنونم ازت مهدی جان
از بقه دوستان هم ممنون
یا علی

shahab.es
دوشنبه 19 آبان 1393, 16:12 عصر
درست شد مهندس ؟

عالی
درست شد ...

shahab.es
دوشنبه 19 آبان 1393, 16:16 عصر
از properties خاصیت های Minimize و Maximize رو False کنید

ممنون بابت توجهت عزیز
این کارو کردم
نتیجه نگرفتم
کد اقا مهدی جواب داد
ممنون از کمکت دوست عزیز