⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reflectioninfoview.cs

📁 CSharpDevelop:这是一个包含源代码的C#、VB.NET的编辑器。
💻 CS
字号:
//  ReflectionInfoView.cs
//  Copyright (C) 2001 Mike Krueger
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

using System;
using System.Collections;
using System.IO;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
using System.Reflection;
using System.Reflection.Emit;

using SharpDevelop.Gui.Edit.Text;
using SharpDevelop.Internal.Undo;
using SharpDevelop.Gui.Window;

namespace SharpDevelop.Gui.Edit.Reflection {

	public class ReflectionInfoView : UserControl
	{
		LinkLabel      namelabel = new LinkLabel (); 
		ReflectionTree tree;
		
		public ReflectionInfoView(MainWindow mainwindow, ReflectionTree tree)
		{
			this.tree = tree;
			
			Dock = DockStyle.Top;
			
			tree.AfterSelect += new TreeViewEventHandler(SelectNode);
			
			namelabel.Location = new Point(10, 10);
			namelabel.Size     = new Size(Width - 10, 20);
			namelabel.Anchor   = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
			
			namelabel.BorderStyle = BorderStyle.FixedSingle;
			Controls.Add(namelabel);
		}
		
		void AddText(LinkLabel label, string text)
		{
			label.Text += text;
		}
		
		void AddLink(LinkLabel label, string linktext)
		{
			int startpos = label.Text.Length;
			label.Text += linktext;
			label.Links.Add(startpos, linktext.Length);
		}
		
		void AddBold(LinkLabel label, string text)
		{
			Font oldfont = label.Font;
			label.Font = new Font(oldfont, FontStyle.Bold);
			label.Text += text;
			label.Font = oldfont;
		}
		
		void SelectNode(object sender, TreeViewEventArgs e)
		{
			ReflectionNode node = (ReflectionNode)e.Node;
			namelabel.Text = "";
			namelabel.Links.Clear();
			
			switch (node.Type) {
				case ReflectionNodeType.Link:
					break;
				case ReflectionNodeType.Constructor:
					break;
				case ReflectionNodeType.Folder:
					break;
				case ReflectionNodeType.Library:
					break;
				case ReflectionNodeType.SubTypes:
					break;
				case ReflectionNodeType.SuperTypes:
					break;
				case ReflectionNodeType.Resource:
					AddText(namelabel, "Resource ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Type:
					AddText(namelabel, "Type ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Method:
					AddText(namelabel, "Method ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Field:
					AddText(namelabel, "Field ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Property:
					AddText(namelabel, "Property ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Reference:
					AddText(namelabel, "Reference ");
					AddBold(namelabel, node.Text);
					break;
				case ReflectionNodeType.Event:
					AddText(namelabel, "Event ");
					AddBold(namelabel, node.Text);
					break;
				
				case ReflectionNodeType.Assembly:
					AddText(namelabel, "Assembly ");
					AddBold(namelabel, node.Text);
					break;
					
				case ReflectionNodeType.Namespace:
					AddText(namelabel, "Namespace ");
					AddBold(namelabel, node.Text);
					break;
				
				default:
					throw new Exception("unknown node type " + node.Type.ToString());
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -