Я бы хотел создать CheckBox
без границ. При этом флажок должен по-прежнему отображать галочку.Как я могу удалить границы CheckBox?
ответ
Следуя совет AndreiV, я создал CustomControl которая унаследовала от Label. Затем я переопределяю события OnPaint и OnClick, чтобы заставить его выглядеть и вести себя как CheckBox. Чтобы отобразить флажок «Проверено изображение», я использовал немного краски для обрезки ее, чтобы мне было нужно.
Ниже приведен полный код:
public partial class FlatCheckBox : Label
{
public bool Checked { get; set; }
public FlatCheckBox()
{
InitializeComponent();
Checked = false;
}
protected override void OnClick(EventArgs e)
{
Checked = !Checked;
Invalidate();
}
protected override void OnPaint(PaintEventArgs pevent)
{
if (!DesignMode)
{
pevent.Graphics.Clear(Color.White);
var bigRectangle = new Rectangle(pevent.ClipRectangle.X, pevent.ClipRectangle.Y,
pevent.ClipRectangle.Width, pevent.ClipRectangle.Height);
var smallRectangle = new Rectangle(pevent.ClipRectangle.X + 1, pevent.ClipRectangle.Y + 1,
pevent.ClipRectangle.Width - 2, pevent.ClipRectangle.Height - 2);
var b = new SolidBrush(UllinkColors.NEWBLUE);
var b2 = new SolidBrush(Color.White);
pevent.Graphics.FillRectangle(b, bigRectangle);
pevent.Graphics.FillRectangle(b2, smallRectangle);
if (Checked)
{
pevent.Graphics.DrawImage(Resources.flatCheckedBox, new Point(3, 3));
}
}
}
}
Выверенный ответ на this question гласит:
Вы не можете удалить только границу, потому что флажок нарисованы окна и она в значительной степени все или ничего.
Это потому, что System.Windows.CheckBox является встроенным элементом управления.
Обходным путем к этому будет привлечение собственного CustomCheckBox без видимых границ.
Надеюсь, это поможет.
Если пользователь CustomCheckBox имеет в виду элемент управления, который наследуется от CheckBox, то это не будет работать на 100%. Даже если одно переопределяет событие OnPaint, удерживая нажатой кнопку мыши на checkBox, граница станет видимой. Однако другой пользовательский элемент управления может просто сделать трюк. Благодаря! –
using System;
using System.Collections.Generic;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
public class RoundButton : Button
{
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
GraphicsPath grPath = new GraphicsPath();
grPath.AddEllipse(0, 0, ClientSize.Width, ClientSize.Height);
this.Region = new System.Drawing.Region(grPath);
base.OnPaint(e);
}
private void InitializeComponent()
{
this.SuspendLayout();
this.ResumeLayout(false);
}
}
}
это класс, который генерирует настроенную круглую кнопку, может быть хорошим стартером для Вас, чтобы сделать свой собственный customCheckbox, делая подобный
Это стартер, но я не думаю, что это хороший стартер. OP не может достичь того, чего он хочет с этим, также я думаю, что в этом вопросе не существует никакого отношения к «Региону», ему нужна какая-то обычная картина. –
@KingKing, пример предоставляет все знания, необходимые OP для решения их проблемы. Изменив 2 строки, я получил это, чтобы сделать то, что OP что. –
@AshBurlaczenko вы можете не понимать фактическую проблему OP, он может означать границу ** квадратного поля ** вокруг checkMark, а не границы checkbox самой. Не могли бы вы опубликовать несколько снимков того, что вы достигли? –
- 1. Как удалить флажок checkbox?
- 2. Элемент CheckBox Tree скрыть границы
- 3. FXML как удалить границы
- 4. Как я могу применить стиль CheckBox ToolBar к регулярному CheckBox?
- 5. Как удалить границы UITableView?
- 6. Как удалить границы
- 7. как я могу удалить "(", ")"?
- 8. Как я могу получить цвет границы JLabel
- 9. Как я могу увеличить границы таблицы html
- 10. Как я могу опустить границу границы?
- 11. Как я могу контролировать высоту границы?
- 12. Как я могу изменить границы маски div?
- 13. как я могу настроить yii checkbox html
- 14. Как я могу получить меньше CheckBox
- 15. Как я могу отложить обратную связь checkbox?
- 16. Как я могу получить значение списка checkbox?
- 17. как я могу удалить Флажки текст
- 18. Как удалить все границы выбора?
- 19. Как удалить элемент ранее границы
- 20. Bootstrap: Как удалить форму границы?
- 21. Как стилизовать CheckBox, чтобы удалить границу
- 22. Как удалить границы в JInternalFrame?
- 23. Как удалить стол границы линии?
- 24. Удалить границы XWPFTableRow
- 25. Удалить заголовок границы
- 26. Как я могу удалить кнопку «Удалить»?
- 27. Как я могу отображать границы страны, государственные границы США и городские границы с помощью Google Maps?
- 28. Рекурсия: Как я могу удалить
- 29. Как я могу удалить строку?
- 30. Как я могу удалить дубликаты?
ли обман может быть и речи? Я знаю, что это требует дополнительной работы, но вы можете создать свой собственный элемент управления или использовать метку без рамки и на белом фоне и просто добавить/удалить проверку события OnMouseUp. –
@AndreiV Довольно уверен, что это сработает, хотя, как вы сказали, это подразумевает большую работу (фактически на самом деле). Был надеется на ответ, который подразумевал свойство контроля CheckBox или что-то в этом роде. Благодаря! –
Когда ничего не работает, обманите :). Spor. –