在vb.net中继承文本框时出错

在vb.net中继承文本框时出错,vb.net,Vb.net,我正在做一个任务,创建一个用户控件,继承一个只允许大写字母的文本框。我还在用它。下面是我一直工作到现在的代码 Imports System.ComponentModel Imports System.Windows.Controls Partial Public Class textboxupper_uc Inherits TextBox Dim strUpperText As String Sub New() InitializeComponent()

我正在做一个任务,创建一个用户控件,继承一个只允许大写字母的文本框。我还在用它。下面是我一直工作到现在的代码

Imports System.ComponentModel
Imports System.Windows.Controls

Partial Public Class textboxupper_uc

 Inherits TextBox

    Dim strUpperText As String

    Sub New()
        InitializeComponent()
    End Sub

    Public Property uppText As String
        Get
            Return strUpperText
        End Get
        Set(value As String)
            strUpperText = value.ToUpper
        End Set
    End Property
End Class

该行继承TextBox给出错误,因为为类“textboxupper_uc”指定的“基类”TextBox“不能与其其他部分类型之一的基类“用户控件”不同。”

您需要了解用户控件和自定义控件之间的区别。如果要继承
TextBox
类,则这是一个自定义控件。用户控件实际上是继承
UserControl
的类

如果将用户控件添加到项目中,则有两个包含分部类的代码文件。设计器代码文件包含
继承UserControl
,这就是您收到错误消息的原因。您的类不能同时继承
UserControl
TextBox


实际上,您并不需要用户控件,因此请从解决方案资源管理器中删除该项。如果需要自定义控件,则应向项目中添加类项,而不是用户控件。在单个代码文件中的类定义中,您可以添加
Inherits TextBox
,然后就可以开始了。

鉴于这是一个作业,我想您必须按照它所说的去做。不过,您可以简单地将标准
文本框的
CharacterCasing
属性设置为
大写
,然后键入的任何内容都将以大写显示。