111,128
社区成员
发帖
与我相关
我的任务
分享private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Delete)
{
DialogResult dr = MessageBox.Show("确定要删除本行吗", "提示");
int selectindex=dataGridView1.CurrentRow.Index;
int autoindex=dataGridView1.RowCount;
int boolindex=autoindex-selectindex;
if(dr==DialogResult.OK)
{
switch(boolindex)
{
case 1:
dataGridView1.AllowUserToAddRows = false;
break;
default :
MessageBox.Show(boolindex.ToString());
break;
}
}
}
} private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
int eindex = e.RowIndex;
dataGridView1[0, eindex].ReadOnly = false;
// MessageBox.Show( dataGridView1.RowCount.ToString());
} 这是我 load里面的事件private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.DataSource = cd.ComDataScore().Tables[0];
int width = 0;
this.comboBox1.ValueMember = "Name";
this.comboBox1.DisplayMember = "Name";
this.comboBox1.AutoCompleteMode = //设置自动完成的模式
AutoCompleteMode.SuggestAppend;
this.comboBox1.AutoCompleteSource = //设置自动完成字符串的源
AutoCompleteSource.ListItems;
for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
{
//将每一列都调整为自动适应模式
this.dataGridView1.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);
//记录整个DataGridView的宽度
width += this.dataGridView1.Columns[i].Width;
}
//判断调整后的宽度与原来设定的宽度的关系,如果是调整后的宽度大于原来设定的宽度,
//则将DataGridView的列自动调整模式设置为显示的列即可,
//如果是小于原来设定的宽度,将模式改为填充。
if (width > this.dataGridView1.Size.Width)
{
this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
}
else
{
this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
dataGridView1.Columns[0].ReadOnly = true; //字段名不允许修改
this.label2.Text = this.comboBox1.Text;
}最后 操作多出来的一行删除掉
[quote=引用 1 楼 yuankaiwsl 的回复:] 没进case 1,没看懂为什么要这样做,直接一开始dataGridView1.AllowUserToAddRows = false;不就完了?
没进case 1,没看懂为什么要这样做,直接一开始dataGridView1.AllowUserToAddRows = false;不就完了?