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

📄 namecreationservice.cs

📁 c#源代码
💻 CS
字号:
// <file>
//     <copyright see="prj:///doc/copyright.txt"/>
//     <license see="prj:///doc/license.txt"/>
//     <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
//     <version value="$version"/>
// </file>

using System;
using System.Drawing;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Windows.Forms.Design;

using ICSharpCode.Core.Services;
using ICSharpCode.SharpDevelop.FormDesigner.Hosts;

namespace ICSharpCode.SharpDevelop.FormDesigner.Services
{
	public class NameCreationService : INameCreationService
	{
		IDesignerHost host;
		
		public NameCreationService(IDesignerHost host)
		{
			this.host = host;
		}
		
		public string CreateName(Type dataType)
		{
			return CreateName(host.Container, dataType);
		}
		
		public string CreateName(IContainer container, Type dataType)
		{
			string name = Char.ToLower(dataType.Name[0]) + dataType.Name.Substring(1);
			int number = 1;
			while (container.Components[name + number.ToString()] != null) {
				++number;
			}
			return name + number.ToString();
		}
		
		public bool IsValidName(string name)
		{
			if (name == null || name.Length == 0 || !(Char.IsLetter(name[0]) || name[0] == '_')) {
				return false;
			}
			
			foreach (char ch in name) {
				if (!Char.IsLetterOrDigit(ch) && ch != '_') {
					return false;
				}
			}
			
			return !((DesignComponentContainer)host.Container).ContainsName(name);
		}
		
		public void ValidateName(string name)
		{
			if (!IsValidName(name)) {
				throw new System.Exception("Invalid name " + name);
			}
		}
	}
}

⌨️ 快捷键说明

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