永发信息网

C# 代码简化问题

答案:3  悬赏:0  手机版
解决时间 2021-06-02 01:06

private void p_button1_Click(object sender, EventArgs e)
{
position = richtext.SelectionStart;
richtext.Text = richtext.Text.Insert(position, p_button1.Text);
richtext.Focus();
richtext.SelectionStart = position + p_button1.Text.Length;
}

private void p_button2_Click(object sender, EventArgs e)
{
position = richtext.SelectionStart;
richtext.Text = richtext.Text.Insert(position, p_button2.Text);
richtext.Focus();
richtext.SelectionStart = position + p_button2.Text.Length;
}

private void p_button3_Click(object sender, EventArgs e)
{
position = richtext.SelectionStart;
richtext.Text = richtext.Text.Insert(position, p_button3.Text);
richtext.Focus();
richtext.SelectionStart = position + p_button3.Text.Length;
}

这三段代码除了p_button后的数字不同外,其他都相同,请问有没办法使它简化,我有好几十个按钮,总不可能每个都写吧、、、、

最佳答案
专门写个函数来实现单击按钮内部的操作可以不
全部回答
所有的button都把click事件关联到同一个事件处理方法里,然后用(sender as button)来引用各个对象,这是个小例子,你运行一下应该就知道该怎么做了: using System; using System.Windows.Forms; class Test { static void Main() { Form f = new Form(); Button b1 = new Button(); Button b2 = new Button(); f.Controls.Add(b1); f.Controls.Add(b2); b1.Text = "1"; b2.Text = "2"; b2.Location = new System.Drawing.Point(0, b1.Height); b1.Click += new EventHandler(click); b2.Click += new EventHandler(click); Application.Run(f); } static void click(object sender, EventArgs e) { Console.WriteLine((sender as Button).Text); } }

private void p_button3_Click(object sender, EventArgs e) { position = richtext.SelectionStart; richtext.Text = richtext.Text.Insert(position, (Button)Sender.Text); richtext.Focus(); richtext.SelectionStart = position + (Button)Sender.Text.Text.Length; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
第一次怀孕吃药打掉是不是以后就不能怀孕了!
BC检查胎儿胆囊出现一个22*18*14的液区.医生
海派甜心 林达浪 买电台是几级
谁QQ飞车电信一区有蝰蛇 我想点图标买 有的留
转驾照需要什么步骤
已经拉黑并删除的好友为什么还能光顾我的农场
夫妻间吵架了经典语录,夫妻间已经无话可说是
开封到常州的动车
河北是不是有个锦州?
小学毕业常用诗词,小学毕业诗
英语题1234567
I can' t stop loving you 是什么意思啊
诺基亚E66的价钱
人体能承受多少个大气压
《乃木坂春香》好看不
推荐资讯
圣元奶粉还可以给小孩喝吗
找德川家康品评
cs1.6闽南语声音补丁
国家的疫苗H1N1在学校打,要钱么?如果收钱改
the bird can fly in the sky.(改一般疑问句
神舟Q130B,型号HDi10是哪一年产的
2010浙江理科考试考了294能进宁波什么大学
为什么我的电脑不能下载软件
从东直门车站怎么到朝阳区青年路的那个NIKE工
关于国庆的英文诗文
爱情和恋情有什么区别
出生年月和身份证的不同,能不能报合作医疗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?