Как изменить форму?

2

У меня есть форма в приложении, разработанном с использованием С#. В этой форме я создал графическую форму (круг). Во время выполнения я хочу, чтобы моя форма тоже была такой формы. То есть, я хочу отображать только эту графику, а не форму обратной земли или заголовка или что-то еще. Я хочу отобразить только эту графику. Но дело в том, что я не могу сформировать свою форму. У меня есть этот графический элемент управления как User-Control, который я добавил в мою форму.

  • 0
    Привет, вы говорите, что хотите создать круглую форму? Или вы хотите сказать, что у вас есть UserControl, который является круглым, и вы хотите отобразить его в форме контейнера с полностью прозрачной формой контейнера?
Теги:
winforms
graphics
transparency

3 ответа

3

Я подозреваю, что вы пытаетесь создать эффект всплеск-эффекта. Это не очень сложно сделать. Вот вам хороший учебник, чтобы вы начали.

Трюк состоит в том, чтобы установить ключ прозрачности формы на цвет, который вы хотите быть прозрачным (в данном случае все, кроме вашего круга). Кроме того, вам нужно установить форму без полей.


В стороне, вы можете отредактировать свой вопрос, чтобы добавить некоторую информацию о том, почему вы хотите это сделать. Мне любопытно, какова ваша цель, с точки зрения пользовательского опыта.

  • 0
    Я просто хочу показывать пользователю графическое изображение в моей форме всякий раз, когда происходит событие. Графика поставляется в виде отдельной формы, и я хочу, чтобы эта форма была невидимой, а только графика - в виде картинки.
2

Вы также можете проверить MSDN для свойства Region. Вы можете использовать объекты System.Drawing для рисования любой фигуры, которую хотите, а затем установить свойства формы Region до ее показания, и она примет ту форму, которую вы ей даете... это короткий пример:

http://www.vcskicks.com/custom_shape_form_region.php

2

Если вам нужна круговая форма, вы можете поместить следующий код в обработчик события загрузки формы:

System.Drawing.Drawing2D.GraphicsPath myPath = new  System.Drawing.Drawing2D.GraphicsPath();
//this line of code adds an ellipse to the graphics path that inscribes
//the rectangle defined by the form width and height
myPath.AddEllipse(0,0,this.Width,this.Height);
//creates a new region from the GraphicsPath
Region myRegion = new Region(myPath);
this.Region = myRegion;

а затем установите для свойства FormBorderStyle формы значение None.

  • 0
    Это я попробовал, но мой график в виде круга, как спидометр, и это эллипс, который я не хочу, я даже пытался дать видимость и высоту в качестве моего контроля плюс некоторое значение, но он не выходит за пределы строки заголовка и выглядит плохо ... любое другое предложение ????
  • 0
    Круг - это эллипс ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню