Я собираюсь создать программу, которая рисует различные формы на экране.Для этого я создал два WinForme.Первый (ActiveHandle) предназначен для выбора фигуры для рисования.Для этого я использовал флажки, каждый из которых описывает значение в файле настроек.Это работает до сих пор.Но если я сейчас открою вторую форму (form1.Show ()), чтобы нарисовать графику без фона на экране, это не сработает.
Мой вопрос сейчас.Что я упустил из виду или что я должен улучшить, чтобы увидеть изображение?Когда я использую form1 в качестве StartForm, все работает отлично.
Здесь у меня есть исходный код двух форм.
ActiveHandle (Control form1 и shape) (активный или деактивный bShapeDrawing в form1)
public partial class ActiveHandle : Form
{
public ActiveHandle()
{
InitializeComponent();
}
private void ActiveHandle_Load(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
Properties.Settings.Default.bShapeDrawing = true;
}
else
{
Properties.Settings.Default.bShapeDrawing = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Visible = false;
Form1 form1 = new Form1();
form1.Show();
}
}
Form1 (рисует фигуры без фона и рамки на экране, когда нажата правая кнопка мыши и bShapeDrawing равно true)
public partial class Form1 : Form
{
public int iWidth;
public int iHight;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int iWidth = SystemInformation.VirtualScreen.Width;
int iHight = SystemInformation.VirtualScreen.Height;
Console.WriteLine("Form1 loading");
}
private void timer1_Tick(object sender, EventArgs e)
{
Console.WriteLine("Form1 timer1 is ticking");
if (Properties.Settings.Default.bShapeDrawing == true)
{
Console.WriteLine("Form1 trying to draw");
Graphics g = this.CreateGraphics();
Pen selPen = new Pen(Color.Red, 2);
if (Control.MouseButtons == MouseButtons.Right)
{
g.DrawRectangle(selPen, iWidth / 2 - 5, iHight / 2 - 5, 5, 5);
Console.WriteLine("Form1 drawing complete");
}
else
{
this.Invalidate();
}
}
else
{
// Drawing deactivated
}
}
}