我自定义了一个TextBox控件,在TextBox的最右边加一个按钮,这个按钮的左右就是把文本框中的文字全都复制到剪贴板中。代码如下
class MyTextBox:TextBox
{
private Button button1; public MyTextBox()
: base()
{
button1 = new Button(); button1.Text = "复制";
button1.Size = new Size(30, this.ClientSize.Height);
button1.UseVisualStyleBackColor = true;
button1.Font = new Font("宋体", 6f);
button1.Cursor = Cursors.Default; button1.Dock = DockStyle.Right; button1.Click += new EventHandler(button1_click); this.Controls.Add(button1);
} private void button1_click(object o, EventArgs e)
{
this.SelectAll();
this.Copy();
}
}但是现在有一个问题就是,当我在文本框中输入的时候,如果输入的文本比较长,超过了文本框的长度,那么最右边的文本会被这个按钮遮住。我如何去实现,当输入的文本超过按钮的位置时,可以像输入文字达到文本框的最右边时那样,把整个文本都向左移动,使这些文字不会被按钮遮住。就好像文本框最右面的边界是在按钮之前一样。(不知道我又没有描述清楚,希望大家能够看明白我说的意思)
class MyTextBox:TextBox
{
private Button button1; public MyTextBox()
: base()
{
button1 = new Button(); button1.Text = "复制";
button1.Size = new Size(30, this.ClientSize.Height);
button1.UseVisualStyleBackColor = true;
button1.Font = new Font("宋体", 6f);
button1.Cursor = Cursors.Default; button1.Dock = DockStyle.Right; button1.Click += new EventHandler(button1_click); this.Controls.Add(button1);
} private void button1_click(object o, EventArgs e)
{
this.SelectAll();
this.Copy();
}
}但是现在有一个问题就是,当我在文本框中输入的时候,如果输入的文本比较长,超过了文本框的长度,那么最右边的文本会被这个按钮遮住。我如何去实现,当输入的文本超过按钮的位置时,可以像输入文字达到文本框的最右边时那样,把整个文本都向左移动,使这些文字不会被按钮遮住。就好像文本框最右面的边界是在按钮之前一样。(不知道我又没有描述清楚,希望大家能够看明白我说的意思)
解决方案 »
- 关于调用webservice的问题
- 崩溃,我怎么就用不了CDO.MessageClass :(
- DateList排序问题
- C# winform 中 我在panoel里动态添加一个picturebox并在picturebox里显示一张图片,我想通过点击这张图片时,得到该图片的路径,这怎么办呢?
- Access
- C# 窗体的 Location 是什么意思
- 用GDI+作报表行吗?
- ArrayList对象如何根据它的内部元素的某个字段值的大小进行排序?
- 窗体控件问题(急在线等)
- 求optimizeit5.5全套下载地址以及注册码
- HttpWebRequest获取到一个html文本怎样获取其中的值
- TripleDESCryptoServiceProvider加解密中文乱码
放置按钮放在文本框外面
修改一下文本框的边框属性为NONE
在文本框和按钮外面再套一个PANEL,设置一下边框为FixedSingle
//
// 摘要:
// 获取或设置用户可在文本框控件中键入或粘贴的最大字符数。
//
// 返回结果:
// 可以在文本框控件中输入的字符数。默认值为 32767。
[DefaultValue(32767)]
[Localizable(true)]
public virtual int MaxLength { get; set; }
是一个TextBox和两个按钮组合起来?这样就和1楼的差不多了。呵呵。