重新生成,控件工具栏,会出现【解决方案名称】组件,如hb_test组件,里面有当前解决方案自定义的控件,如果没有,以下方法可以使控件在编辑状态出现在窗体上。
专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业洞头免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
打开form1.designer。vb
在Partial Class Form1类中的最后添加:
Friend WithEvents MergeColumn1 As WindowsApplication1.MergeColumn’定义控件的全局变量
找到public sub InitializeComponent过程,在里面添加:
Me.MergeColumn1 = New WindowsApplication1.Datavip()‘初始化。
Me.MergeColumn1.Location = New System.Drawing.Point(0, 0)‘控件在窗体中的位置。
Me.daMergeColumn1ame = "daMergeColumn1"’控件名
Me.MergeColumn1.Size = New System.Drawing.Size(140, 150)‘必需,控件大小。
Me.MergeColumn1.TabIndex = 0’
Me.Controls.Add(Me.daMergeColumn1)‘必需,将控件添加到窗体。
工具箱右键单击——选择项……——选择.net组件或com组件——点击“浏览”选择控件dll文件,然后工具箱中就会出现新加的控件
以修改“C:\abc.txt"为bat为例。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Myfile As String
Myfile = IO.Path.ChangeExtension("C:\abc.txt", ".bat")
Microsoft.VisualBasic.FileSystem.Rename("C:\abc.txt", Myfile)
End Sub
End Class
由于汉语语言表述的所带来的不易理解性,我们还是直接用代码来解释吧,如下的代码片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static class StringExtentsion
{
public static string ToString(this string str)
{
return "Extentsion" + str;
}
}
class Program
{
static void Main(string[] args)
{
string str = "test";
Console.WriteLine(str.ToString()); // 输出结果为: test,也就说编译器会优先选用原有类的实例化方法,如果没找到匹配方法再寻找扩展方法
Console.Read();
}
}
由上述的代码片段可以知:StringExtentsion类中扩展方法ToString 和 String类的原有的ToString方法 对于客户端代码而言,它们的语法表象是
一样的,但本质上一个是StringExtentsion类的静态方法,一个是String类的实例化方法。然而编译运行没有产生错误,更没有产生警告。所以在
这种情况下很容“埋雷”,一不小心就会中招。有人也许会说:我注意一下不要和.NET类库的方法重名就可以了。但是你能保证 .NET 6、甚至.NET 10
的方法名和你写的绝对不重名吗?所以,扩展方法存在着版本控制的问题。