PDA

View Full Version : سوال: مشکل در کد برنامه در زمان چک کردن button فشرده شده یا نه



iran_sky
جمعه 28 آبان 1389, 23:37 عصر
با سلام
دوستان این کد زمانی که کلید مورد نظر فشرده باشد highlight میشود اما در این خط کد که رنگی میکنم پیغام خطا میگیره
کد برنامه


void checkbtn()
{
if (RTB.SelectionFont.Bold == true)
{
bold_toolStripButton2.Checked = true;
}
if (RTB.SelectionFont.Italic == true)
{
italic_toolStripButton3.Checked = true;
}
if (RTB.SelectionFont.Underline == true)
{
underline_toolStripButton4.Checked = true;
}
}



private void underline_toolStripButton4_Click(object sender, EventArgs e)
{
FontStyle fs = RTB.SelectionFont.Style;
if (RTB.SelectionFont.Underline == false)
{
fs += FontStyle.Underline;
RTB.SelectionFont = new Font(RTB.Font.Name, RTB.Font.Size, fs, GraphicsUnit.Point);
}
else
{
fs -= FontStyle.Underline;
RTB.SelectionFont = new Font(RTB.Font.Name, RTB.Font.Size, fs, GraphicsUnit.Point);
}
checkbtn();
}

پیغام خطا


Error 1 Operator '+=' cannot be applied to operands of type 'System.Drawing.FontStyle' and 'System.Drawing.FontStyle'

MSN_Issue
شنبه 29 آبان 1389, 05:21 صبح
خب این ارور که واضحه !
میگه فونت استایل رو نمیشه += کرد !
بهتره بجای اون کار دوباره فونت استایلتون رو new کنید ...

Reza_Yarahmadi
شنبه 29 آبان 1389, 08:52 صبح
FontStyle يك enum است و نه با += ميشه اونو مقدار دهي كرد و نه با New كردن.
براي كاري كه ميخوايد انجام بديد بصورت زير عمل كنيد

richTextBox1.Font = new Font(richTextBox1.Font.FontFamily,
richTextBox1.Font.Size,
richTextBox1.Font.Style | FontStyle.Bold);

iran_sky
شنبه 29 آبان 1389, 21:35 عصر
واسه چی پس برای (-= ) پیغام خطا نمیده

Reza_Yarahmadi
شنبه 29 آبان 1389, 22:17 عصر
دوست عزیز به جای استفاده از عملگر =+ باید از روشی که بالا نوشتم استفاده کنید. عملگر =- هم برای کم کردن یک استایل از مجموعه استایلهاست.
عملگر | در واقع OR منطقی است و برای ترکیب حالات استایلها استفاده میشه.

iran_sky
شنبه 29 آبان 1389, 22:20 عصر
دوست عزیز راستشو بخوای گیج شدم میشه کد خودمو تغییر بدی
ممنون میشم

Reza_Yarahmadi
شنبه 29 آبان 1389, 22:33 عصر
میشه چیزی شبیه کد زیر

private void underline_toolStripButton4_Click(object sender, EventArgs e)
{
if (RTB.SelectionFont.Underline == false)
{
RTB.SelectionFont = new Font(RTB.SelectionFont.FontFamily,
RTB.SelectionFont.Size,
RTB.SelectionFont.Style | FontStyle.Underline,
GraphicsUnit.Point);
}
else
{
FontStyle fs = RTB.SelectionFont.Style;
fs -= FontStyle.Underline;
RTB.SelectionFont = new Font(RTB.Font.Name,
RTB.Font.Size,
fs,
GraphicsUnit.Point);
}
checkbtn();
}

iran_sky
شنبه 29 آبان 1389, 22:45 عصر
دوست عزیز این دستور کاری انجام نمیده

Reza_Yarahmadi
یک شنبه 30 آبان 1389, 07:58 صبح
دوست من به نمونه ساده زير يه نگاه بندازيد هر 2 سوال شما توش انجام شده.