gpt4 book ai didi

.net - 可以创建带有文本框和标签的 ToolStripMenuItem 吗?

转载 作者:行者123 更新时间:2023-12-01 16:05:02 27 4
gpt4 key购买 nike

在 WinForms .Net 2.0 应用程序中,我想创建一个带有 ToolStripMenuItem 的上下文菜单,该菜单项本身具有标签和文本框。我正在谈论的示例可以在 Access 中找到 - 查看 Access 表时,上下文菜单具有“按选择筛选”、“排除选择的筛选”选项,然后是“筛选条件:_ _ _ _ _ _ ”。第三个选项本质上是单个项目中的标签和文本框。这是我不知道该怎么做。

我在使用两个独立 ToolStripMenuItems 实现此功能时没有遇到任何问题 - 一个用于文本,然后是一个仅包含文本框的子项。但这很尴尬,而且不如 Access 中的实现好看。

任何人都可以指出我正确的方向吗?我在搜索时遇到问题,因为我找到的所有内容似乎都与文本框本身的上下文菜单有关。

最佳答案

这是给你的答案:

How to: Wrap a Windows Forms Control with ToolStripControlHost
ToolStripControlHost Class

而且,我写了一个简短的演示(请记住它看起来很糟糕,因为我根本没有设计它):

(我更喜欢 VB.net,你没有指定你喜欢哪种语言)

Public Class ToolStripEntry
Inherits ToolStripControlHost

Public Sub New()
MyBase.New(New ControlPanel)

End Sub

Public ReadOnly Property ControlPanelControl() As ControlPanel
Get
Return CType(Me.Control, ControlPanel)
End Get
End Property

End Class


Public Class ControlPanel
Inherits Panel

Friend WithEvents txt As New TextBox //with events so you can just use the events
Friend WithEvents lbl As New Label //don think you can just do that in c#, but you get the idea

Public Sub New()

lbl.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Bottom
lbl.Text = "Test"
lbl.TextAlign = ContentAlignment.MiddleLeft
lbl.Size = New Size(30, Me.Height) //think of somthing!
lbl.Location = New Point(0, 0)
lbl.Parent = Me

txt.Anchor = AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top
txt.Location = New Point(lbl.Right, 0)
txt.Width = Me.Width - txt.Left
txt.Parent = Me

End Sub

End Class

关于.net - 可以创建带有文本框和标签的 ToolStripMenuItem 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/613372/

27 4 0