PDA

View Full Version : تغییر رنگ و border از یک GroupBox



پرستو پارسایی
جمعه 18 بهمن 1392, 15:04 عصر
با سلام
آیا راهی برای تغییر رنگ و افزایش border یک groupbox هست .
ممنون میشم راهنمایی بفرمائید.

sehm67
جمعه 18 بهمن 1392, 17:00 عصر
با سلام
آیا راهی برای تغییر رنگ و افزایش border یک groupbox هست .
ممنون میشم راهنمایی بفرمائید.

سلام

GroupBox خود VS چنین قابلیتی نداره

شما بایستی از کامپوننت چون Janus , DevExpress , DotNetBar و ... استفاده نمایید.

پرستو پارسایی
شنبه 19 بهمن 1392, 01:10 صبح
ممنونم از پاسختون
ولی دیدم که با کد نویسی هم رنگ و هم border رو تغییر میدن بدون کامپوننت.
تو msdn هم تغییر رنگ رو توضیح داده .
کامپوننت های بالا رو هم تهیه کردم ولی راستش اطمینان ندارم که در دراز مدت کار کنن.

majid_i68
شنبه 19 بهمن 1392, 01:18 صبح
private void button1_Click(object sender, EventArgs e)
{
ColorDialog objClr = new ColorDialog();
if (objClr.ShowDialog() == DialogResult.OK)
{
groupBox1.BackColor = objClr.Color;
}
}

majid_i68
شنبه 19 بهمن 1392, 01:23 صبح
تغییر سایز


private void button2_Click(object sender, EventArgs e)
{
groupBox1.Width = Convert.ToInt32(textBox1.Text);
groupBox1.Height = Convert.ToInt32(textBox2.Text);
}

پرستو پارسایی
شنبه 19 بهمن 1392, 01:28 صبح
Dim objClr As New ColorDialog()
If objClr.ShowDialog() = DialogResult.OK Then
GroupBox1.BackColor = objClr.Color
End If
End Sub

کد شما رو که دیدم فکر کردم تالار رو اشتباه اومدم برا همین ویبیش کردم
این کد نه رنگ رو تغییر میده و نه سایز border رو
برای این مدل تغییرات پیشنهادی شما نیاز به کد نیست proprety هست دیگه ( منظور از تغییر رنگ تغییر رنگ border هست)
ولی ممنونم

Naghibi
شنبه 19 بهمن 1392, 11:28 صبح
با سلام
شما می تونین یه کلاس به پروژه تون اضافه کنین به اسم MyGroupBox و کدهای زیر رو داخلش بنویسین
بعد از ذخیره و Rebuild کردن پروژه به لیست کنترل ها اضافه میشه و می تونین توی برنامه ازش استفاده کنین


Inherits GroupBox

'Property to give you control over the color
Private mBorderColor As Color = Color.Black
Public Property BorderColor() As Color
Get
Return mBorderColor
End Get
Set(ByVal value As Color)
mBorderColor = value
End Set
End Property

'This Draws the line
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Dim tSize As Size = TextRenderer.MeasureText(Me.Text, Me.Font)
Dim borderRect As Rectangle = e.ClipRectangle
borderRect.Y = (borderRect.Y _
+ (tSize.Height / 2))
borderRect.Height = (borderRect.Height _
- (tSize.Height / 2))
ControlPaint.DrawBorder(e.Graphics, borderRect, Me.BorderColor, 5, ButtonBorderStyle.Solid, Me.BorderColor, 5, ButtonBorderStyle.Solid, Me.BorderColor, 1, ButtonBorderStyle.Solid, Me.BorderColor, 1, ButtonBorderStyle.Solid)
Dim textRect As Rectangle = e.ClipRectangle
textRect.X = (textRect.X + 6)
textRect.Width = tSize.Width
textRect.Height = tSize.Height
e.Graphics.FillRectangle(New SolidBrush(Me.BackColor), textRect)
e.Graphics.DrawString(Me.Text, Me.Font, New SolidBrush(Me.ForeColor), textRect)
End Sub

farhad85
پنج شنبه 24 بهمن 1392, 12:17 عصر
آره ایشون درست فرمایش کردن از دات نت بار استفاده کنید وحالشو ببرید