PDA

View Full Version : آموزش: تغییر رنگ progtessbar



erfane.r
شنبه 28 مرداد 1391, 03:40 صبح
سلام دوستان.چه طوری رنگ progressbar تغییر بدم؟
به codeproject هم مراجعه کردم اما متوجه نشدم.

mousa1992
شنبه 28 مرداد 1391, 05:03 صبح
ProgressBar pb = new ProgressBar();
pb.ForeColor = Color.Red;
pb.Style = System.Windows.Forms.ProgressBarStyle.Continuous;

این خواصو ست کن و حذف این خط کد در Program.cs

Application.EnableVisualStyles();

mousa1992
شنبه 28 مرداد 1391, 05:06 صبح
یا به این صورت ProgressBor خودتونو بازنویسی میکنید

public class NewProgressBar : ProgressBar
{
public NewProgressBar()
{
this.SetStyle(ControlStyles.UserPaint, true);
}

protected override void OnPaint(PaintEventArgs e)
{
Rectangle rec = e.ClipRectangle;

rec.Width = (int)(rec.Width * ((double)Value / Maximum)) - 4;
if(ProgressBarRenderer.IsSupported)
ProgressBarRenderer.DrawHorizontalBar(e.Graphics, e.ClipRectangle);
rec.Height = rec.Height - 4;
e.Graphics.FillRectangle(Brushes.Red, 2, 2, rec.Width, rec.Height);
}
}

erfane.r
شنبه 28 مرداد 1391, 11:23 صبح
دوست عزیز من یه کم آماتورم.این کده منه.می شه دقیقا بفرمایید کجا باید اضافه کنم؟اسم پروژم progressbar هستش.
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 progressbar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value++;
if (progressBar1.Value == 100)
{
timer1.Enabled = false;
login frm = new login();
this.Hide();
frm.Show();
}
}

private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Value = 0;
timer1.Interval = 20;
timer1.Enabled = true;
}

}
}

danialafshari
شنبه 28 مرداد 1391, 11:42 صبح
کد مشکلی نداره و کار میده

saman_h
شنبه 28 مرداد 1391, 11:53 صبح
ببخشید . چطوری باید از این کلاس استفاده کرد ؟!

saman_h
شنبه 28 مرداد 1391, 11:55 صبح
ProgressBar pb = new ProgressBar();
pb.ForeColor = Color.Red;
pb.Style = System.Windows.Forms.ProgressBarStyle.Continuous;

این خواصو ست کن و حذف این خط کد در Program.cs

با این روش که فرم میشه مثل ویندوز 98 !! روش بعدیتون که یه کلاس گذاشتید رو یه توضیح بدید ممنون میشم ؟

samadblaj
شنبه 28 مرداد 1391, 14:02 عصر
سلام ببخشید این کد برای من جواب نداد؟ هیچ تاثیری نداره!


private void button1_Click(object sender, EventArgs e)
{
ProgressBar pb = new ProgressBar();
pb.ForeColor = Color.Red;
pb.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
pb.Value = 50;

}

saman_h
شنبه 28 مرداد 1391, 16:26 عصر
سلام ببخشید این کد برای من جواب نداد؟ هیچ تاثیری نداره!


private void button1_Click(object sender, EventArgs e)
{
ProgressBar pb = new ProgressBar();
pb.ForeColor = Color.Red;
pb.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
pb.Value = 50;

}



دوست عزیز بخاطر اینکه داخل program.cs نرفتی کد زیر رو پاک کنی !!
باید اینو پاک کنی : Application.EnableVisualStyles();
اما واقعا زشت میشه منکه خودم خیلی بدم اومد . دوستان نمیدونین دیگه چیکار میشه کرد که رنگ تغییر کنه اما حاالت گرافیکی فرم از بین نره ؟

mousa1992
شنبه 28 مرداد 1391, 18:45 عصر
همونطور که در پست 3 میبینید کلاس NewProgressBar از ProgressBar مشتق گرفته شده و تنظیمت مورد نظرتون رو انجام میدید و در پروژتون ازش شی میسازین و استفادهع میکنید

mousa1992
شنبه 28 مرداد 1391, 18:49 عصر
ببخشید . چطوری باید از این کلاس استفاده کرد ؟!
کلاس رو داخل namespace برنامتون و بیرون از کلاس form و یا از طریق addnewitem کلاس جدیدی رو به پروژتون اضافه کنید

samadblaj
شنبه 28 مرداد 1391, 19:17 عصر
بهترین راهش اینه که WPF رو یاد بگیری و برا خودت کامپوننت بسازی...

mousa1992
دوشنبه 30 مرداد 1391, 07:15 صبح
Dll , Source رو در اینجا (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE/page85) قرار دادم
موفق باشید