C# 按钮触发

随枫而来 2011-11-22 08:35:16
C#中比如我左边有一排按钮我命名btn1,内容为1.btn2,内容为2...btn10,内容为N
1 。我右边也有一排按钮,我如何按下左边的一个按钮,然后点击右边按钮的时候把值付给右边的某个按钮,
关键的问题来了!
我左边的按钮,比如我第一下点的是btn1,如果我再点一下btn1,那么等等再点击右边的按钮赋值就是空的,就是左边的同一个按钮,当你连续点了2下后,他被点击的效果就取消了。这个怎么弄?望各位大神看看。
...全文
1377 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
forget_loves 2011-11-28
  • 打赏
  • 举报
回复
外部做一个变量并给个值,如过点击了一下就把那个变量的值改变,在点击就把变量的值设置成初始的值,就是弄个标识就好了
白水2010 2011-11-28
  • 打赏
  • 举报
回复
// 1. 将所有左侧所有的 button 绑定同一个 click event
// 2. 定义一个全局 button 变量 btnLeft
// 3. 公共 button_Click 事件方法如下:
public void button_Click(sender obj, EventArgs e)
{
btnLeft = (Button)obj;
}
……
public void button_Click2(sender obj, EventArgs e)
{
(sender as Button).Text = btnLeft.Text;
}

flyerwing 2011-11-25
  • 打赏
  • 举报
回复
事件:定义委托;基于委托定义事件;然后订阅事件;通知订阅者处理事件。
这鬼东西没什么搞的。,
飞天凤凰601 2011-11-25
  • 打赏
  • 举报
回复


TextBox[] text = new TextBox[3];
Button[] button = new Button[3];
bool[] tb=new bool[3];


private void button1_Click(object sender, EventArgs e)
{


string textname =(sender as Button).Text;
int textint=int.Parse(textname.Substring(6,1));

if (!tb[textint])
{
text[textint].Text = textname;
}
else
{
text[textint].Text = "";
}
tb[textint] = !tb[textint];

}

private void Form1_Load(object sender, EventArgs e)
{
text[1] = textBox1;
text[2] = textBox2;
button[1] = button1;
button[2] = button2;
tb[1] = false;
tb[2] = false;
}

飞天凤凰601 2011-11-25
  • 打赏
  • 举报
回复
我有点明白。。。但我不喜欢结贴率是红色的。。
momoooog 2011-11-25
  • 打赏
  • 举报
回复
看的我云里雾里
PaulyJiang 2011-11-25
  • 打赏
  • 举报
回复
没事蛋疼的问题
山东蓝鸟贵薪 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qqyifeng1990 的回复:]
就是一个按钮,我连续按了2次,他就跟初期化一样,跟没被按过的效果一样,怎么弄,老大?
[/Quote]
就没有明白,你的这个所为的“初始化”是什么意思???
是可用
还是可显示状态
youzelin 2011-11-25
  • 打赏
  • 举报
回复
右侧的按钮也可以绑定同一个 button_Click
youzelin 2011-11-25
  • 打赏
  • 举报
回复

// 1. 将所有左侧所有的 button 绑定同一个 click event
// 2. 定义一个全局 button 变量 btnLeft
// 3. 公共 button_Click 事件方法如下:
public void button_Click(sender obj, EventArgs e)
{
btnLeft = (Button)obj;
}
// 4. 在右边的按钮事件方法中,如下实现:
public void button_Click2(sender obj, EventArgs e)
{
(sender as Button).Text = btnLeft.Text;
}
杉杉木木 2011-11-25
  • 打赏
  • 举报
回复
问下大神“Sandy945” 那个外部变量 IList<Button> 怎么样添加值,和取值啊,

private IList<Button> _btn;
public IList<Button> Btn
{
get { return _btn ; }
set { _btn = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

}
}
protected void btn1_Click(object sender, EventArgs e)
{
_btn.Add(btn1);
}

protected void Button1_Click(object sender, EventArgs e)
{
foreach (Button btn in Btn)
{
if (btn.ID == "btn1")
{
this.Button1.Text = btn.Text;
}
}
}
itelite39660787 2011-11-24
  • 打赏
  • 举报
回复
lz的意思是不是需要一个点击的记忆啊,用Tag怎么样。


if (button1.Tag == null)
{
button1.Tag = true;
}
else
{
bool clicked = (bool)button1.Tag;
button1.Tag = !clicked;
}
woodcoin 2011-11-24
  • 打赏
  • 举报
回复
从点击事件的第一个参数 sender 去取点击事件的发送者
根据发送者去赋值
例如点击事件是button_Click(object sender,EvebtAargs e)
你点btn1 触发的话 sender=btn1
你点btn2 触发的话 sender=btn2
后面用switch 判断一下就OK了



cjnkd 2011-11-24
  • 打赏
  • 举报
回复
没看明白,啥意思
sugarbelle 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 qqyifeng1990 的回复:]


是有一点晕的,来回答这种问题的都需要大神级别的~~~
[/Quote]

你需要的不是大神.是语文老师.
随枫而来 2011-11-23
  • 打赏
  • 举报
回复
不好意思大家,表达的不是非常清晰,下次尽量表达的好些。
随枫而来 2011-11-23
  • 打赏
  • 举报
回复
问了公司的技术老大了,每天告诉大家答案。先去写份报告。
F546445693 2011-11-23
  • 打赏
  • 举报
回复
您这个表达真挺让人费解的
简单的提示下,一个外部int变量,也就是全局变量 ,一个 bool 数据

click事件中,int变量++;同时判断int值,如果是1 bool 为true;否则为false;
在右边的click事件时判断bool值,为true则赋值,否则为空。

也可以直接在左边click中根据int值 赋btn值或者赋空值。
简森 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 sugarbelle 的回复:]

引用 35 楼 qqyifeng1990 的回复:


是有一点晕的,来回答这种问题的都需要大神级别的~~~


你需要的不是大神.是语文老师.
[/Quote]
+1
阿非 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 qqyifeng1990 的回复:]
引用 28 楼 sandy945 的回复:

左侧的button可以点多个么?

不能就只能点击一个,但都是统一个click事件,因为左边的按钮式动态生成的。
[/Quote]
你要实现的是不是 右侧按钮被点击的时候 显示左侧当前被选中的文本

加载更多回复(37)

110,571

社区成员

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

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

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