تبلیغات
تبلیغات
تبلیغات
تبلیغات

مشکل این کلاس کنترل چیه؟
(1 مشاهده) (1) مهمان
  • صفحه:
  • 1

موضوع: مشکل این کلاس کنترل چیه؟

مشکل این کلاس کنترل چیه؟ 1 ماه پیش #139094

  • SajjadKhati
  • آنلاین
  • کاربر همیشگی سایت
  • ارسال: 174
  • دریافت تشكر: 162
  • 
سلام
یه کنترلی بنام TransparentControl را دارم میسازم (قبلا ساختم اما الان قابلیت های جدیدی دارم بهش اضافه میکنم) که کارش اینه که پشت زمینه اش شفاف هه .
آخرین تغییراتی که دادم را فایل این کلاس را در زیر میذارم.
الان مشکلش اینه که وقتی پروپرتی TextAutoSize از کلاس TransparentControl را تغییر میدم ، متن ای که رسم میکنه ، وقتی موس را روی این کنترل میبریم ، ضخیم رسم میکنه . دلیل شو گشتم ، ولی پیدا نکردم . کسی میدونه راهنمایی کنه؟

الان این کد زیر ، اشکالی که در بالا توضیح دادم را نمایان میکنه (اول روی دکمه ی AutoSize ، کلیک راست کنید و به متن کنترل TransparentControl هم دقت کنید که خواهید دید کمی ضخیم تر میشه . اگه فرم را مینیمایز و بعد به حالت اولیه اش برگردونید ، متن ، نازک میشه. اگه دوباره این کاری که گفتم را انجام بدین یا موس را روی کنترل ببرید ، متن ، ضخیم تر میشه) :

private void Form1_Load(object sender, EventArgs e)
{
    Button btnAutoSize = new Button { Bounds = new Rectangle(10, 10, 100, 35), Parent = this, Text = "AutoSize", BackColor = Color.WhiteSmoke };
    btnAutoSize.MouseUp += new MouseEventHandler(this.Button3_MouseUp);
 
 
 
 
    TransparentControlText text = new TransparentControlText("salam");
    this.transparentControl = new TransparentControl(text, new Rectangle(new Point(100, 200), new Size(250, 100)), false);
    this.Controls.Add(this.transparentControl);
}
 
 
 
 
private void Button3_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
        this.transparentControl.TextAutoSize = false;
    else if (e.Button == MouseButtons.Right)
        this.transparentControl.TextAutoSize = true;
}



دانلود آخرین تغییرات فایل TransparentControl :

8pic.ir/uploads/TransparentControl_bc65d.rar

با تشکر

پاسخ: مشکل این کلاس کنترل چیه؟ 1 ماه پیش #139098

  • SajjadKhati
  • آنلاین
  • کاربر همیشگی سایت
  • ارسال: 174
  • دریافت تشكر: 162
سلامی مجدد
انگار حدودا ، بهتر پیدا کردم که مشکل از کجاست (اما هنوز دقیق متوجه نشدم) .
مشکل انگار از کدهای تغییر سایز در TransparentControl هست . ربطی به TransparentControlText نداره.
مثلا کدهای زیر ، مشکلی ندارن (این کد ، رویداد Button3_MouseUp در کد بالاست که تغییر کرده) (برای آپدیت و رسم ، بعد از کلیک روی دکمه ، موس را روی کنترل TransparentControl ببرید) :


        private void Button3_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
                this.transparentControl.TransparentControlText.Text = "salam";
            else if (e.Button == MouseButtons.Right)
                this.transparentControl.TransparentControlText.Text = "khobi?";
        }


یا


        private void Button3_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
                this.transparentControl.TransparentControlText.TextFont = this.Font;
            else if (e.Button == MouseButtons.Right)
                this.transparentControl.TransparentControlText.Text = "khobi?";
        }


اما این کد مشکل داره :


        private void Button3_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
                this.transparentControl.Size = new Size(250, 100);
            else if (e.Button == MouseButtons.Right)
                this.transparentControl.Size = new Size(180, 70);
        }


حالا داخل کلاس TransparentControlText مشکل خودش را نشون میده چون داخل رویداد TransparentControl_TextAutoSizeChanged ، کدِ this.TransparentControl.Size = fontSize.ToSize() را بکار بردم.
  • صفحه:
  • 1
زمان ایجاد صفحه: 0.12 ثانیه

جدیدترین آثار ارسالی در گالری

تبلیغات
تبلیغات

جدیدترین ارسالهای تالارگفتگو