C#为什么有些c 自定义控件 事件无法绑定事件?

1035人阅读
.net开发(73)
c# winform开发(25)
这两天一直被一个问题困扰着,就是 我用一个combox显示数据,并根据用户的选择,触发SelectedIndexChanged事件完成一些操作,但是当用combox数据绑定到一个dataset时就触发了SelectedIndexChanged事件,请教如何在数据绑定时不让combox控件触发SelectedIndexChanged事件,
&本来想设个Flag变量,判断是不是第一次登录,那样也可以,不过我不喜欢,后来看到网上有说用“事件”解决。
做个试验,真好使
代码如下:
1 & & & & & & //解除事件
2 & & & & & & this.cboVendor.SelectedIndexChanged -= new System.EventHandler(this.cboVendor_SelectedIndexChanged); & & & & &
3 & & & & & & cboVendor.DataSource = &myClass.RunQueryCmd(strSqlCmd);&
4 & & & & & & cboVendor.DisplayMember = &SupplierCode&;&
5 & & & & & & //添加事件
6 & & & & & & this.cboVendor.SelectedIndexChanged += new System.EventHandler(this.cboVendor_SelectedIndexChanged);
问题解决!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:226490次
积分:3296
积分:3296
排名:第7222名
原创:107篇
转载:45篇
评论:31条
(2)(2)(2)(1)(1)(18)(14)(6)(19)(19)(10)(19)(16)(1)(1)(2)(2)(1)(1)(1)(1)(1)(4)(5)(3)5860人阅读
由于开发中业务信息的不确定性,今天制作了个usercontrol组件,该用户控件中添加了若干个子控件(如button、textbox、label),但是在winform应用程序中调用时,发现无法对其子控件(如button)进行单击自动生成button click事件代码的问题,通过google搜索了下,大致找到了解决方法,现在记录下来,仅作为开发笔记,如浏览本帖的人员有其他更好的方法,或者对其原理进行阐述的,可以留言,谢谢各位
1.首先先创建usercontrol用户控件,具体如何创建各位可去进行google搜索,或者查找相关书籍教程
设计器文件 UserControl1.Designer.cs
namespace WindowsControlLibrary1
partial class UserControl1
/// &summary&
/// 必需的设计器变量。
/// &/summary&
ponentModel.IContainer components =
/// &summary&
/// 清理所有正在使用的资源。
/// &/summary&
/// &param name=&disposing&&如果应释放托管资源,为 true;否则为 false。&/param&
protected override void Dispose(bool disposing)
if (disposing && (components != null))
components.Dispose();
base.Dispose(disposing);
#region 组件设计器生成的代码
/// &summary&
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// &/summary&
private void InitializeComponent()
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
// button1
this.button1.Location = new System.Drawing.Point(63, 69);
this.button1.Name = &button1&;
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = &button1&;
this.button1.UseVisualStyleBackColor =
this.label1.AutoSize =
this.label1.Location = new System.Drawing.Point(70, 114);
this.label1.Name = &label1&;
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 1;
this.label1.Text = &label1&;
// textBox1
this.textBox1.Location = new System.Drawing.Point(63, 151);
this.textBox1.Name = &textBox1&;
this.textBox1.Size = new System.Drawing.Size(100, 21);
this.textBox1.TabIndex = 2;
// UserControl1
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.F
this.AutoValidate = System.Windows.Forms.AutoValidate.EnableAllowFocusC
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Name = &UserControl1&;
this.Size = new System.Drawing.Size(269, 232);
this.ResumeLayout(false);
this.PerformLayout();
#endregion
public System.Windows.Forms.Button button1;
public System.Windows.Forms.Label label1;
public System.Windows.Forms.TextBox textBox1;
代码文件UserControl1.cs
using System.Collections.G
using System.D
using System.D
using System.T
using System.Windows.F
namespace WindowsControlLibrary1
public partial class UserControl1 : UserControl
public UserControl1()
InitializeComponent();
2.需要将usercontrol中的子控件(如 button)属性中的Modifiers中的值改为Public
3.进行编译,编译成功将生成的usercontrol dll通过鼠标拖动工具箱中。
4.在该解决方案中,添加winform应用程序项目,然后将刚刚添加到工具箱中的usercontrol 控件拖动到winform窗体中
5.开始在winform应用程序中编写usercontrol 子控件(button)的单击事件代码
using System.Collections.G
using System.D
using System.D
using System.T
using System.Windows.F
namespace WindowsApplication1
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void userControl11_button1_Click(object sender, EventArgs e)
MessageBox.Show(&userControl11 button1 Click&);
private void Form1_Load(object sender, EventArgs e)
this.userControl11.button1.Click += userControl11_button1_C
6.编译winform应用程序,运行后点击usercontrol中的button即可看到效果。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:147266次
积分:1539
积分:1539
排名:第19021名
原创:19篇
转载:35篇csEXWB2控件明明有click事件,但为什么却不相应呢?_c#吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:89,532贴子:
csEXWB2控件明明有click事件,但为什么却不相应呢?收藏
csEXWB2控件()明明有click事件,但为什么却不相应呢?例如如下代码,结果没有任何反应(cswb是控件的name):------------
private void cswb_Click(object sender, EventArgs e)
MessageBox.Show("ok");
}------------请高手指点!为什么会这样呢?该怎么弄才能使用相应单击双击等事件呢?多谢!
事件添加了吗?
看这个控件的说明应该是Web服务器控件,而你好像把这个控件用到了WinForm开发上了(看你代码你使用了MessageBox)
PS:如果你就是把这个控件用到了Web应用程序开发了,那么在Web中你不能使用MessageBox,因为这不是WinForm,你可以使用Response.Write("ok");
csEXWB控件的属性面板中有"click"事件.如下图:补充:csEXWB是winform控件;以上代码也是windform中的代码片段.
csEXWB自身就有click事件了,如上图.
是WinForm的话,订阅了Click事件么?话说你的截图怎么这么渣。。。难道是手机拍下来的。。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或初学者提问~ComboBox控件怎么在绑定数据源时不触发SelectIndexChanged事件 - C#当前位置:& &&&初学者提问~ComboBox控件怎么在绑定数据源时不触发S初学者提问~ComboBox控件怎么在绑定数据源时不触发SelectIndexChanged事件&&网友分享于:&&浏览:60次菜鸟提问~~!!!ComboBox控件如何在绑定数据源时不触发SelectIndexChanged事件?如题~!
C#环境下winform开发~
comboBox控件选择的是DropDownList类型
& private & void & Frm_ruku_Load(object & sender, & System.EventArgs & e)
//供货单位实体绑定,数据源是一个ArrayList,其中是从数据库中查找的数据封装成的类的对象
& //这里触发一次
this.CbBghsh.DataSource & = & YDBLLruku.GetAllGongHuoShang();
& //这里又触发一次
this.CbBghsh.DisplayMember & = &
&MingCheng &;
this.CbBghsh.ValueMember & = &
&BianMa &;
...............
private & void & CbBghsh_SelectedIndexChanged(object & sender, & System.EventArgs & e)
ComboBox & cb & = & (ComboBox) &
if( & cb.SelectedIndex & != & -1 & )
& //这里,在窗体load时就会触发
& MessageBox.show(cb.SelectedValue.ToString());
本来是想这个ComboBox改变时,另一个文本框的内容根据它的选项而改变,但这里在窗体Load时就会触发这个事件,这时,刚刚绑定数据源,从ComboBox.SelectedValue取出来的值显示在文本框中的是:
但在窗体加载完毕之后,再选择ComboBox的项时,就能正常取出其中选择的值了~~~~
那么,如何让它在绑定数据源时不触发这个事件呢?或者有另外的思路???------解决方案--------------------删除ComboBox的SelectedIndexChanged事件,在绑定之后手工注册CbBghsh_SelectedIndexChanged事件。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有C# 自定义控件添加事件不显示
[问题点数:20分,结帖人liutian]
C# 自定义控件添加事件不显示
[问题点数:20分,结帖人liutian]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 js给控件绑定事件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信