在C# winform里怎么获取控件(像textBox)自带的右键功能? 5
像textBox点击右键的话菜单里有个“粘贴”,现在想点击一个按钮直接实现向textBox里粘贴文字的功能,怎么写代码呀...
像textBox点击右键的话菜单里有个“粘贴”,现在想点击一个按钮直接实现向textBox里粘贴文字的功能,怎么写代码呀
展开
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace textBoxPaste
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
textBox1.Text = (String)iData.GetData(DataFormats.Text);
}
}
}
}
更多追问追答
追问
你好,你的回答是自己实现了与RichTextBox右键“粘贴”相同的功能,自己写代码,我是想通过button直接调用控件默认(已有的)右键菜单中的功能,因为我用的控件为imagebox,此控件右键本身就含有许多能对图片处理的功能,我想直接把这些图片处理功能拿来使用,这些图像处理功能如果自己写的话很麻烦,但是控件的右键中确有这些功能,我就想直接调用这些功能
追答
你这控件是哪里来的?vs自带的吗?
展开全部
using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data;
public class Form1 : Form
{
private RichTextBox richTextBox1 ;
private Button button1 ;
private System.ComponentModel.Container components = null ;
public Form1()
{
//初始化窗体中的各个组件
InitializeComponent ( ) ;
}
//清除程序中使用过的资源
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if ( components != null )
{
components.Dispose ( ) ;
}
}
base.Dispose ( disposing );
}
private void InitializeComponent ( )
{
this.richTextBox1 = new RichTextBox ( ) ;
this.button1 = new Button ( ) ;
this.SuspendLayout ( ) ;
this.richTextBox1.Location = new System.Drawing.Point ( 40 , 16 ) ;
this.richTextBox1.Name = "richTextBox1" ;
this.richTextBox1.Size = new System.Drawing.Size ( 336 , 264 ) ;
this.richTextBox1.TabIndex = 0 ;
this.richTextBox1.Text = "" ;
this.button1.Location = new System.Drawing.Point ( 128 , 304 ) ;
this.button1.Name = "button1" ;
this.button1.Size = new System.Drawing.Size ( 128 , 24 ) ;
this.button1.TabIndex = 1 ;
this.button1.Text = "获得剪切板中的数据" ;
this.button1.Click += new System.EventHandler ( this.button1_Click ) ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ;
this.ClientSize = new System.Drawing.Size ( 408 , 357 ) ;
this.Controls.Add ( button1 );
this.Controls.Add ( richTextBox1 );
this.Name = "Form1";
this.Text = "用Visual C#来保存剪切板中的数据!";
this.ResumeLayout(false);
}
static void Main ( )
{
Application.Run ( new Form1 ( ) ) ;
}
private void button1_Click ( object sender , System.EventArgs e )
{ //定义一个IDataObject接口
IDataObject d = Clipboard.GetDataObject ( ) ;
//如果剪切板中数据是位图,则另存为F盘的my.bmp文件
if ( d.GetDataPresent ( DataFormats.Bitmap ) )
{
//出箱
Bitmap b = ( Bitmap ) d.GetData ( DataFormats.Bitmap ) ;
b.Save ( @"F:\my.bmp" ) ;
MessageBox.Show ("当前剪切板内容是位图,已经保存到MY.BMP文件中!" ) ;
} //如果是文本,则用窗体中的RichText组件显示文本内容。
else if ( d.GetDataPresent ( DataFormats.Text ) )
{
//出箱
String c = ( String ) d.GetData ( DataFormats.Text ) ;
richTextBox1.Text = c ;
}
else
{
MessageBox.Show ( "剪切板中是其他类型的数据!" ) ;
}
}
}
追问
你好,你的回答是自己实现了与RichTextBox右键“粘贴”相同的功能,自己写代码,我是想通过button直接调用右键的功能,因为我用的控件为imagebox,此控件右键本身就含有许多能对图片处理的功能,我想直接把这些功能拿来使用,不想自己再写代码(太难!!!),你的回答很好,多谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有一个控件啊,好像是叫popmune
追问
没太懂?求指点!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询