TextBox里面放一个Button该怎么实现

boywangliang 2009-06-06 01:11:37
如题
请求源代码
...全文
784 49 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfywy 2009-06-08
  • 打赏
  • 举报
回复
学习
ATGO 2009-06-06
  • 打赏
  • 举报
回复
楼主你别问了,会的人99%不会告诉你,不会的人99%都说用自定义控件。

http://space.cnblogs.com/group/topic/10476/

我自己都试过NC_PAINT,还是不行,希望楼主你找到方法可以告诉我。我要继承TextBox的。
netstray 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wartim 的回复:]
C# codeTextBox TB = new TextBox();
TB.Parent = this;
Button B = new Button();
B.Parent = TB;
B.Width = 40;
B.Dock = DockStyle.Right;
B.BackColor = SystemColors.Control;


可以加,不过字多了会被按钮覆盖
[/Quote]

学习学习了
光宇广贞 2009-06-06
  • 打赏
  • 举报
回复
不可能。
wzuomin 2009-06-06
  • 打赏
  • 举报
回复
用Panel、TextBox、Button 写个自定义控件吧


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test As New TextButtonControl
AddHandler test.ButtonClick, AddressOf TestControlClick
AddHandler test.TextBoxTextChanged, AddressOf TestControlTextChanged
Me.Controls.Add(test)
End Sub

Private Sub TestControlClick(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("ButtonClick")
End Sub

Private Sub TestControlTextChanged(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("TextChanged")
End Sub

End Class

Public Class TextButtonControl
Inherits System.Windows.Forms.Panel

Private WithEvents txtBox As TextBox
Private WithEvents btn As Button

Public Event ButtonClick(ByVal sender As Object, ByVal e As EventArgs)
Public Event TextBoxTextChanged(ByVal sender As Object, ByVal e As EventArgs)

Public Sub New()
Me.BorderStyle = Windows.Forms.BorderStyle.Fixed3D
Me.MinimumSize = New Size(50, 22)
txtBox = New TextBox With {.BorderStyle = Windows.Forms.BorderStyle.None}
btn = New Button With {.Text = "…"}
Me.Controls.Add(txtBox)
Me.Controls.Add(btn)
End Sub

Private Sub TextButtonControl_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Me.Height = 21
btn.SetBounds(Me.Width - 24, 1, 20, 18)
txtBox.SetBounds(2, 2, Me.Width - 28, 21)
End Sub

Private Sub txtBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBox.TextChanged
RaiseEvent TextBoxTextChanged(sender, e)
End Sub

Private Sub btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn.Click
RaiseEvent ButtonClick(sender, e)
End Sub

End Class

baofengyingyinaaa 2009-06-06
  • 打赏
  • 举报
回复
面向对象思想,一切皆为对象呵呵。
我认为写textbox然后button是他的属性。
十八道胡同 2009-06-06
  • 打赏
  • 举报
回复
复制一个button到textbox的地方,看起来像在textbox里面,
呵呵
// 
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(104, 142);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(309, 231);
this.textBox1.TabIndex = 3;
//
// button2
//
this.button2.Location = new System.Drawing.Point(299, 195);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 23);
this.button2.TabIndex = 4;
this.button2.Text = "button2";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
yzy8788 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yzy8788 的回复:]
引用 11 楼 wartim 的回复:
C# codeTextBox TB = new TextBox();
TB.Parent = this;
Button B = new Button();
B.Parent = TB;
B.Width = 40;
B.Dock = DockStyle.Right;
B.BackColor = SystemColors.Control;


可以加,不过字多了会被按钮覆盖



学习了
[/Quote]

这种方法貌似不行汗~~~~
yzy8788 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wartim 的回复:]
C# codeTextBox TB = new TextBox();
TB.Parent = this;
Button B = new Button();
B.Parent = TB;
B.Width = 40;
B.Dock = DockStyle.Right;
B.BackColor = SystemColors.Control;


可以加,不过字多了会被按钮覆盖
[/Quote]

学习了
小曦子 2009-06-06
  • 打赏
  • 举报
回复
不错,学习
wangyanboq 2009-06-06
  • 打赏
  • 举报
回复
做一个用户控件,直接把button拖拽到textbox上就OK了
outou 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wartim 的回复:]
C# codeTextBox TB = new TextBox();
TB.Parent = this;
Button B = new Button();
B.Parent = TB;
B.Width = 40;
B.Dock = DockStyle.Right;
B.BackColor = SystemColors.Control;


可以加,不过字多了会被按钮覆盖
[/Quote]
试过,不错

wartim 2009-06-06
  • 打赏
  • 举报
回复
TextBox TB = new TextBox();
TB.Parent = this;
Button B = new Button();
B.Parent = TB;
B.Width = 40;
B.Dock = DockStyle.Right;
B.BackColor = SystemColors.Control;

可以加,不过字多了会被按钮覆盖
chanchaw 2009-06-06
  • 打赏
  • 举报
回复
MARK
mamudelingling 2009-06-06
  • 打赏
  • 举报
回复
把textbox的背景颜色换成窗体的背景颜色,然后在右面放一个按钮 底下一个label
wwei466 2009-06-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 evaa006 的回复:]
给TextBox中放一个Panel然后再在Panel中放个Btn,不过不太明白你这样做的目的。
[/Quote]
.....TextBox可以放Panel?????
evaa006 2009-06-06
  • 打赏
  • 举报
回复
给TextBox中放一个Panel然后再在Panel中放个Btn,不过不太明白你这样做的目的。
kingcsx666 2009-06-06
  • 打赏
  • 举报
回复
可以看看dv里面的buttonEdit的源码,就是楼主想要的结果
ljhcy99 2009-06-06
  • 打赏
  • 举报
回复
你想把Textbox 仅仅当成一个容器用吗 ?
那为何不用panel,panel也可以 设置边框,也能实现类似textbox一样的效果
sageking2 2009-06-06
  • 打赏
  • 举报
回复
TextBox又不是容器,里面不能放button,你必须自己做一个像TextBox那样四边黑、中间白的控件,里面再放个Button
加载更多回复(28)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧