|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using KRBColorTable;
namespace KRBTabControlTest
{
public partial class Main : Form
{
#region Instance Members
private ToolStripRenderer m_currentToolStripRenderer;
private KRBProfessionalColors m_currentProfessionalColorTable;
#endregion
#region Constructor
public Main()
{
InitializeComponent();
this.RenderStyles.Items.Add(typeof(ToolStripProfessionalRenderer)); //Standart tipimizi başlangıçta atıyoruz
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom("ColorSnapIn.dll");
Type[] types = assembly.GetTypes();
foreach (Type type in types)
{
if (type.BaseType == typeof(ToolStripProfessionalRenderer)) //Tipimiz ToolStripProfessionalRenderer sınıfından mı miras alıyor
{
this.RenderStyles.Items.Add(type); //Office2007 tipini at
if (type.Name == "Office2007")
this.RenderStyles.SelectedItem = type;
}
else if ((type.BaseType == typeof(KRBProfessionalColors)) && type.Name == "GrayStyles") //Tipimiz KRBProfessionalColors sınıfından mı miras alıyor
{
this.ColorStyles.SelectedItem = type;
}
}
//SetViewMenuItems();
}
#endregion
#region Helper Methods
// Renk Stilleri Ekleme Methodu
private void RenderStyles_SelectedIndexChanged(object sender, EventArgs e)
{
Type type = RenderStyles.SelectedItem as Type;
if (type != null)
{
ToolStripProfessionalRenderer toolStripRenderer = Activator.CreateInstance(type) as ToolStripProfessionalRenderer; //Yeni bir instance yarat
if (toolStripRenderer != null)
{
if (toolStripRenderer.Equals(m_currentToolStripRenderer) == false) //Şu anki tip değilse scope içerisine gir
{
this.ColorStyles.Items.Clear();
if (type == typeof(ToolStripProfessionalRenderer))
goto Finish;
Type baseType = toolStripRenderer.ColorTable.GetType().BaseType;
if (baseType != null)
{
System.Reflection.Assembly assembly = toolStripRenderer.ColorTable.GetType().Assembly;
if (assembly != null)
{
Type[] types = assembly.GetTypes();
foreach (Type colorTableType in types)
{
if (colorTableType.IsClass && colorTableType.IsNotPublic && colorTableType.IsSealed && baseType.IsAssignableFrom(colorTableType)) //KRBProfessionalColors'tan miras almışmı?
{
this.ColorStyles.Items.Add(colorTableType);
}
}
}
}
Finish:
this.m_currentToolStripRenderer = toolStripRenderer;
ToolStripManager.Renderer = this.m_currentToolStripRenderer;
}
}
}
}
// Stili değiştirme metodu
private void ColorStyles_SelectedIndexChanged(object sender, EventArgs e)
{
Type type = ColorStyles.SelectedItem as Type;
if (type != null)
{
KRBProfessionalColors colorTable = Activator.CreateInstance(type) as KRBProfessionalColors;
if (colorTable != null)
{
if (colorTable.Equals(m_currentProfessionalColorTable) == false)
{
this.m_currentProfessionalColorTable = colorTable;
this.m_currentToolStripRenderer = Activator.CreateInstance(this.m_currentToolStripRenderer.GetType(), new object[] { colorTable }) as ToolStripProfessionalRenderer;
ToolStripManager.Renderer = this.m_currentToolStripRenderer;
}
}
}
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Since 1998...
MCPD - Enterprise Application Developer
“Hesaplı hareket ettiğini zanneden ve onunla iftihar eyliyen dar kafalar; kurtulmağa, yükselmeğe elverişli hiç bir eser vücüda getirmezler. Kurtuluş ve yükselişi, ancak varlığına dayanan ve mülkü milletin gizli kapalı hazinelerini verimli hale getirmesini bilen, şahsi menfaatini millet menfaati uğruna feda eden, ruhu idealist, dimağı realist şahsiyetlerde aramalıdır.”
Nuri Demirağ, 1947