📄 vbnetdesignergenerator.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision: 915 $</version>
// </file>
using System;
using System.ComponentModel;
using System.Text;
using System.Reflection;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.FormsDesigner
{
public class VBNetDesignerGenerator : AbstractDesignerGenerator
{
protected override System.CodeDom.Compiler.CodeDomProvider CreateCodeProvider()
{
return new Microsoft.VisualBasic.VBCodeProvider();
}
protected override DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
return new DomRegion(r.BeginLine + 1, 1, r.EndLine, 1);
}
protected override string CreateEventHandler(EventDescriptor edesc, string eventMethodName, string body, string indentation)
{
string param = GenerateParams(edesc);
StringBuilder b = new StringBuilder();
b.AppendLine(indentation);
b.AppendLine(indentation + "Sub " + eventMethodName + "(" + param + ")");
b.AppendLine(indentation + "\t" + body);
b.AppendLine(indentation + "End Sub");
return b.ToString();
}
protected static string GenerateParams(EventDescriptor edesc)
{
System.Type type = edesc.EventType;
MethodInfo mInfo = type.GetMethod("Invoke");
string param = "";
IAmbience csa = null;
try {
csa = (IAmbience)AddInTree.BuildItem("/SharpDevelop/Workbench/Ambiences/VBNet", null);
} catch (TreePathNotFoundException) {
LoggingService.Warn("VB ambience not found");
}
for (int i = 0; i < mInfo.GetParameters().Length; ++i) {
ParameterInfo pInfo = mInfo.GetParameters()[i];
param += pInfo.Name;
param += " As ";
string typeStr = pInfo.ParameterType.ToString();
if (csa != null) {
typeStr = csa.GetIntrinsicTypeName(typeStr);
}
param += typeStr;
if (i + 1 < mInfo.GetParameters().Length) {
param += ", ";
}
}
return param;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -