关于DataGridView行充满控件的有关问题
求助:关于DataGridView行充满控件的问题
在用DataGridView模拟拼接墙的的面板,比如2X2,通过设置行高和列宽,让行和列充满单元格,目前已经实现如下效果:
但是出现个问题,当选中单元格,用键盘方向键、Tab键或者鼠标全选往下拖的时候就会出现如下的结果:
如何设置才能不出现这种情况,或者说不用DataGridView?
代码如下
------解决方案--------------------
用不着DataGridView。用PictureBox画画就搞定了。
在用DataGridView模拟拼接墙的的面板,比如2X2,通过设置行高和列宽,让行和列充满单元格,目前已经实现如下效果:
但是出现个问题,当选中单元格,用键盘方向键、Tab键或者鼠标全选往下拖的时候就会出现如下的结果:
如何设置才能不出现这种情况,或者说不用DataGridView?
代码如下
private void Form1_Load(object sender, EventArgs e)
{
InitWall(2, 2);
}
private void InitWall(int rowCount, int colCount)
{
int index = 1;
//增加列
for (int i = 1; i < colCount + 1; i++)
{
DataGridViewTextBoxColumn dc = new DataGridViewTextBoxColumn();
dc.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
dc.ReadOnly = true;
dc.Resizable = DataGridViewTriState.False;
dc.SortMode = DataGridViewColumnSortMode.NotSortable;
dataGridView1.Columns.Add(dc);
}
//增加行
for (int j = 0; j < rowCount - 1; j++)
{
DataGridViewRow dr = new DataGridViewRow();
dr.ReadOnly = true;
dr.Resizable = DataGridViewTriState.False;
dr.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataGridView1.Rows.Add(dr);
}
//设定行高
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Height = dataGridView1.Height / rowCount;
}
for (int m = 0; m < rowCount; m++)
{
for (int n = 0; n < colCount; n++)
{
dataGridView1.Rows[m].Cells[n].Value = index;
index++;
}
}
}
}
------解决方案--------------------
用不着DataGridView。用PictureBox画画就搞定了。