2010-04-03 2 views
0

Как я динамически удаление/добавление (отменить удаление) формы области с помощью региона и графики пути классаДинамически удаление/добавление (отменить удаление) формы области в C#

+0

@Suriyan: Вы действительно должны прилагать больше усилий задавать свой вопрос, если вы хотите, чтобы кто-то ответить на него. –

ответ

0

Чтобы изменить форму вашей формы динамически, просто установите свойство Region формы на новый объект Region, созданный с GraphicsPath. Например, форма с одной кнопкой на нем может изменить его форму, как это: (рабочий пример)

using System; 
using System.Drawing; 
using System.Drawing.Drawing2D; 
using System.Windows.Forms; 

namespace Sample 
{ 
    public class ShapedForm : Form 
    { 
     Button testbutton; 

     public ShapedForm() 
     { 
      // Create a button. 
      testbutton = new Button(); 
      testbutton.Location = new Point(10, 10); 
      testbutton.Size = new Size(50, 50); 
      testbutton.Text = "Click me!"; 
      testbutton.Click += new EventHandler(this.testbutton_Click); 
      this.Controls.Add(testbutton); 

      // Remove the border around the form. 
      this.FormBorderStyle = FormBorderStyle.None; 

      // Set the initial shape of the form to an ellipse. 
      GraphicsPath path = new GraphicsPath(); 
      path.AddEllipse(0, 0, 200, 100); 

      this.Region = new Region(path); 
     } 

     private void testbutton_Click(object sender, EventArgs e) 
     { 
      // Change the shape of the form to some other ellipse. 
      GraphicsPath path = new GraphicsPath(); 
      path.AddEllipse(0, 0, 100, 100); 
      path.AddEllipse(120, 40, 50, 50); 

      this.Region = new Region(path); 
     } 
    } 
} 
+0

спасибо за ваш ответ. я думаю, я не смог откат в исходное состояние после удаления. ваш ответ довольно прямой –

Смежные вопросы