一个DataGridView的问题 我要在DataGridView一列中鼠标点击这一列的个单元格后这个单元格里出面一个按钮。点击后弹出一个窗体,选择后这一行就被填充了你选择的值,然后 这一个按钮消失。还有一个问题,就是键盘的向下键。光标停到DataGridView的最后一行按个向下键后就自动生成一空白行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.模版列:试试那列用DataGridViewButtonColumn。2.好像是把AlowUserToAddRows属性设置成flase。 有两种做法:1:当选中一个单元格的时候动态的建立一个Button,把这个Button显示到当前的单元格中,给这个Button添加一个事件弹出窗体供操作.2:给DataGridView的每一个列都使用自定义的列.第一种做法较简单,你可以试试如下做法:private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e){ this.dataGridView1.Controls.Clear(); Button btn = new Button(); btn.Bounds = this.dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); btn.Visible = true; btn.Text = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString(); btn.Click += new EventHandler(btn_Click); this.dataGridView1.Controls.Add(btn);}void btn_Click(object sender, EventArgs e){ Form f = new Form(); f.ShowDialog(this.dataGridView1);} 如下的设置可以使DataGridView自动的在最后一行增加一个输入行:this.dataGridView1.AllowUserToAddRows=true btn.Text = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();这个怎么提示未将对象引用设置到对象的实例.呀,谢谢! 1、创建一Button控件设为隐藏,在DataGridView的CellClick事件里设置Button可见,位置为当前cell位置,在Button的click事件设置弹出窗体,弹出窗体上选的值返回到当前cell2、选中DataGridView,点右上角的三角,取消“启动添加”的选项 btn.Text = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();只是给按钮设置一个标题,你可以不用这句.而使用一个固定的标题,比如:btn.Text = "操作"; 是这样的我只有一列才出现按钮,而且按钮只是右对其这个单元格,不是占满这个单元格还有就是你那个this.dataGridView1.AllowUserToAddRows=true方法,键盘向下的按键不能实现自动生成一行呀,要可以连续可以生成的.谢谢了 是这样的我只有一列才出现按钮--------------------------------------DataGridView不是有一个按钮的列吗?如果不合适,你可以通过自定义来定义一个自已的列添加到DataGridView中.要可以连续可以生成的------------------------------你可以动态的向数据源里添加新行来实现,可以使用:DataTable.NewRow 方法生成新行,然后向DataTable.Rows添加,或DataView.AddNew 方法向DataTable中添加新的行. 不是占满整个单元格,这个好说,你只要由GetCellDisplayRectangle来计算就可以了.我不是说了吗?你可以自定义一个编辑列.参照MSDN:如何:在 Windows 窗体 DataGridView 单元格中承载控件 DataGridView 控件提供了多种列类型,使得用户可以通过多种方式输入和编辑值。但是,如果这些列类型无法满足数据输入要求,您也可以使用承载所选控件的单元格创建自己的列类型。要做到这一点,必须定义派生自 DataGridViewColumn 和 DataGridViewCell 的类。您还必须定义派生自 Control 并实现 IDataGridViewEditingControl 接口的类。下面的代码示例演示如何创建日历列。此列的单元格在普通的文本框单元格中显示日期,但当用户编辑单元格时,就会出现 DateTimePicker 控件。为了避免必须再次实现文本框显示功能,CalendarCell 类从 DataGridViewTextBoxCell 类派生,而不是直接从 DataGridViewCell 类继承。注意 当从 DataGridViewCell 或 DataGridViewColumn 派生并向派生类添加新属性时,请确保重写 Clone 方法以便在克隆操作期间复制新属性。还应调用基类的 Clone 方法,以便将基类的属性复制到新的单元格或列中。 .... 重写datagridvew,添加模板,然用这个事件EditingControlShowing 2的N次幕的权限设计遇到的算法问题 正则表达式中的括号嵌套如何匹配啊,高手来啊 状态栏中的标签如何设置为右对齐??? 一个实体集合如何实现按照某些字段来排序呢? 请问如何修改DataSet中DataTable的列的结构? 请教网络视频实现。。。高手进来看看 有关提示框的 关于OracleDataReader 的问题 一个困扰我很久的问题,谢谢大家了!!!!!来帮我一下!! 求一个子串在字符串中位置用什么方法? 未将对象引用设置到对象的实例。 急求解????? 如何让自己的邮件服务器发出的邮件不被当作垃圾邮件
2.好像是把AlowUserToAddRows属性设置成flase。
1:当选中一个单元格的时候动态的建立一个Button,把这个Button显示到当前的单元格中,给这个Button添加一个事件弹出窗体供操作.2:给DataGridView的每一个列都使用自定义的列.第一种做法较简单,你可以试试如下做法:
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
this.dataGridView1.Controls.Clear();
Button btn = new Button();
btn.Bounds = this.dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
btn.Visible = true;
btn.Text = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
btn.Click += new EventHandler(btn_Click);
this.dataGridView1.Controls.Add(btn);
}void btn_Click(object sender, EventArgs e)
{
Form f = new Form();
f.ShowDialog(this.dataGridView1);
}
this.dataGridView1.AllowUserToAddRows=true
这个怎么提示未将对象引用设置到对象的实例.呀,谢谢!
2、选中DataGridView,点右上角的三角,取消“启动添加”的选项
只是给按钮设置一个标题,你可以不用这句.而使用一个固定的标题,比如:btn.Text = "操作";
还有就是你那个this.dataGridView1.AllowUserToAddRows=true方法,键盘向下的按键不能实现
自动生成一行呀,要可以连续可以生成的.谢谢了
--------------------------------------
DataGridView不是有一个按钮的列吗?如果不合适,你可以通过自定义来定义一个自已的列添加到DataGridView中.要可以连续可以生成的
------------------------------
你可以动态的向数据源里添加新行来实现,可以使用:
DataTable.NewRow 方法生成新行,然后向DataTable.Rows添加,或
DataView.AddNew 方法向DataTable中添加新的行.
如何:在 Windows 窗体 DataGridView 单元格中承载控件 DataGridView 控件提供了多种列类型,使得用户可以通过多种方式输入和编辑值。但是,如果这些列类型无法满足数据输入要求,您也可以使用承载所选控件的单元格创建自己的列类型。要做到这一点,必须定义派生自 DataGridViewColumn 和 DataGridViewCell 的类。您还必须定义派生自 Control 并实现 IDataGridViewEditingControl 接口的类。下面的代码示例演示如何创建日历列。此列的单元格在普通的文本框单元格中显示日期,但当用户编辑单元格时,就会出现 DateTimePicker 控件。为了避免必须再次实现文本框显示功能,CalendarCell 类从 DataGridViewTextBoxCell 类派生,而不是直接从 DataGridViewCell 类继承。注意
当从 DataGridViewCell 或 DataGridViewColumn 派生并向派生类添加新属性时,请确保重写 Clone 方法以便在克隆操作期间复制新属性。还应调用基类的 Clone 方法,以便将基类的属性复制到新的单元格或列中。
....