#visual-c #c -cli
#visual-c #c -cli
Вопрос:
как сказано в заголовке, я хочу создать пользовательский элемент управления из класса control.
но он не отображается в окне формы приложения.
это работает, когда я меняю базовый класс с control на usercontrol.
любой может мне помочь, спасибо.
#pragma once
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
namespace cc {
public ref class Class1 : public System::Windows::Forms::Control
{
// TODO: Add your methods for this class here.
public:
Class1()
{
this->SetStyle(ControlStyles::ResizeRedraw, true);
this->SetStyle(ControlStyles::UserPaint, true);
this->SetStyle(ControlStyles::AllPaintingInWmPaint, true);
}
protected:
virtual void OnPaint( PaintEventArgs^ e ) override
{
__super::OnPaint(e);
System::Drawing::Rectangle rcRect = this->ClientRectangle;
// Create a local version of the graphics object for the PictureBox.
Graphics^ g = e->Graphics;
// Draw a string on the PictureBox.
g->DrawString("This is a diagonal line drawn on the control",
gcnew System::Drawing::Font("Arial",10), System::Drawing::Brushes::Blue, Point(30,30));
// Draw a line in the PictureBox.
g->DrawLine(System::Drawing::Pens::Red, this->Left, this->Top,
this->Right, this->Bottom);
}
};
}
Комментарии:
1. Работает нормально, когда я пытаюсь это сделать. В коде нет ничего плохого. Может быть, что-то не так с тем, куда вы его поместили, трудно догадаться.