Я создал новый пользовательский элемент управления, который имеет свойство, как ...Как создать пользовательский элемент управления с помощью шрифта по умолчанию его родителя?
private Font m_DisplayFont;
public Font DisplayFont
{
get { return m_DisplayFont; }
set { m_DisplayFont = value; }
}
Я хочу установить m_DisplayFont для шрифта родителя, когда я бросаю новый пользовательский элемент управления в контейнер (форма, GroupBox, и т.д.) ,
В настоящее время я пробовал следующее, но не могу получить родительский объект при создании класса. Любые предлагаемые приветствовались. Благодаря!
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
namespace MyTestControl
{
public partial class UserControl1 : ProgressBar
{
private Font m_DisplayFont;
public Font DisplayFont
{
get { return m_DisplayFont; }
set { m_DisplayFont = value; }
}
public UserControl1()
{
InitializeComponent();
object parent = base.Parent;
m_DisplayFont = null;
if (parent != null)
{
//See if parent contains a font
Type type = parent.GetType();
IList<PropertyInfo> props = new List<PropertyInfo>(type.GetProperties());
foreach (PropertyInfo propinfo in props)
{
if (propinfo.Name == "Font")
{
m_DisplayFont = (Font)propinfo.GetValue(parent, null);
}
}
}
if (m_DisplayFont == null) m_DisplayFont = new Font("Verdana", 20.25f);
}
}
}
Это сработало отлично! Благодаря! –