PDA

View Full Version : تغییر رنگ نوار بالایی فرم



jaboli
یک شنبه 18 مرداد 1394, 18:33 عصر
سلام چطوری نوار بالای فرم رو تغییر بدم؟!!میخوام رنگ بک گراندشو تغییر بدم

Beginner67
یک شنبه 18 مرداد 1394, 19:29 عصر
الان سوالتون دقیقا چیه؟
ببینید نوار بالای فرم بر اساس نوع پنجره های سیستمتون حالت میگیره.
اگر میخوایید رنگ فرم یعنی زمینه رو تغییر بدید ک در properties فرم backcolor رو تغییر بدید.
اگر میخوایید حالت فرمتون تغییر کنه میتونید خاصیت controlbox اون رو false کنید و حتی میتونید text فرم رو خالی کنید تا کلا نوار بالا حذف بشه.

jaboli
دوشنبه 19 مرداد 1394, 09:08 صبح
الان سوالتون دقیقا چیه؟
ببینید نوار بالای فرم بر اساس نوع پنجره های سیستمتون حالت میگیره.
اگر میخوایید رنگ فرم یعنی زمینه رو تغییر بدید ک در properties فرم backcolor رو تغییر بدید.
اگر میخوایید حالت فرمتون تغییر کنه میتونید خاصیت controlbox اون رو false کنید و حتی میتونید text فرم رو خالی کنید تا کلا نوار بالا حذف بشه.
ممنون ولی نمیخوام دکمه های maximize و minimize و close حذف بشه خب!!!!ولی میخوام رنگشو فقطط عوض کنم کدی یا کنترلی نداره برای این کار؟!!

Beginner67
دوشنبه 19 مرداد 1394, 15:15 عصر
تاجایی ک من میدونم ب طور عادی این نوار از نوار پنجره های سیستم طبعیت میکنه.
اما اگر میخوایید تغییرش بدید میتونید از کامپوننت هایی ک برای تغییر پوسته هستن استفاده کنید این طوری هم رنگ و حالت فرم و هم نوار بالا تغییر میکنه.

khokhan
دوشنبه 19 مرداد 1394, 15:20 عصر
ممنون ولی نمیخوام دکمه های maximize و minimize و close حذف بشه خب!!!!ولی میخوام رنگشو فقطط عوض کنم کدی یا کنترلی نداره برای این کار؟!!
اگه قراره برنامه تون توی ویندوز 7 کاربرد داشته باشه چاره ای نداری جز اینکه titel bar استاندارد رو حذف کنی و خودت یه دونه ماماندوزش رو درست کنی با دکمه های مربوطه و عنوان فرم
ولی اگه غیر از این باشه با توابع api شاید بشه کاریش کرد:

[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

[DllImport("User32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
const int WM_NCPAINT = 0x85;
if (m.Msg == WM_NCPAINT)
{
IntPtr hdc = GetWindowDC(m.HWnd);
if ((int)hdc != 0)
{
Graphics g = Graphics.FromHdc(hdc);
g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 4800, 23));
g.Flush();
ReleaseDC(m.HWnd, hdc);
}
}
}


یا اینکه از اسکین های آماده مثل SkinCrafter (http://skincrafter.com/) استفاده کنی