拉一个C sharp界面,用一个datagridview显示四个人的学号、姓名、班级、年龄。其中第一个人是学号001,姓名张三,班级信管二班,年龄18。第二个人学号002,姓名李三,班级信管三班,年龄19。第三个人学号003,姓名张无,班级信管一班,年龄18。第四个人学号004,姓名赵三,班级信管四班,年龄20。并且点击其中一个人的那一列会在右边的四个文本框内分别显示他的学号、姓名、班级、年龄。在右边四个文本框内进行改动,会直接改动datagridview中的内容。再设立两个button,其中一个点击之后,datagridview被选中的一列向上移动,如果已经是第一列则用message box提示已经到第一列。另外一个button点击后,datagridview中被选中的一列向下移动,如果已经是最后一列则用messagebox提示已经到了最后一列
时间: 2024-03-09 22:49:38 浏览: 63
一个 Student类:包括姓名、学号、性别、专业、家庭地址。
好的,以下是C#代码实现:
首先,在窗体上拖动一个DataGridView,四个TextBox和两个Button控件。然后在代码中添加以下代码:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
// 添加表格列
dataGridView1.Columns.Add("id", "学号");
dataGridView1.Columns.Add("name", "姓名");
dataGridView1.Columns.Add("class", "班级");
dataGridView1.Columns.Add("age", "年龄");
// 添加表格行
dataGridView1.Rows.Add("001", "张三", "信管二班", "18");
dataGridView1.Rows.Add("002", "李三", "信管三班", "19");
dataGridView1.Rows.Add("003", "张无", "信管一班", "18");
dataGridView1.Rows.Add("004", "赵三", "信管四班", "20");
// 设置DataGridView单元格只读
dataGridView1.ReadOnly = true;
// 设置DataGridView选中模式为整行
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
// 点击表格单元格时,将该行数据显示到TextBox中
if (e.RowIndex >= 0)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
textBox1.Text = row.Cells[0].Value.ToString();
textBox2.Text = row.Cells[1].Value.ToString();
textBox3.Text = row.Cells[2].Value.ToString();
textBox4.Text = row.Cells[3].Value.ToString();
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
// 文本框内容改变时,同步更新DataGridView中的数据
if (dataGridView1.SelectedRows.Count > 0)
{
DataGridViewRow row = dataGridView1.SelectedRows[0];
row.Cells[0].Value = textBox1.Text;
row.Cells[1].Value = textBox2.Text;
row.Cells[2].Value = textBox3.Text;
row.Cells[3].Value = textBox4.Text;
}
}
private void button1_Click(object sender, EventArgs e)
{
// 向上移动选中行
if (dataGridView1.SelectedRows.Count > 0)
{
int index = dataGridView1.SelectedRows[0].Index;
if (index > 0)
{
dataGridView1.Rows.RemoveAt(index);
dataGridView1.Rows.Insert(index - 1, dataGridView1.SelectedRows[0]);
dataGridView1.Rows[index - 1].Selected = true;
}
else
{
MessageBox.Show("已经到第一行了!");
}
}
}
private void button2_Click(object sender, EventArgs e)
{
// 向下移动选中行
if (dataGridView1.SelectedRows.Count > 0)
{
int index = dataGridView1.SelectedRows[0].Index;
if (index < dataGridView1.Rows.Count - 1)
{
dataGridView1.Rows.RemoveAt(index);
dataGridView1.Rows.Insert(index + 1, dataGridView1.SelectedRows[0]);
dataGridView1.Rows[index + 1].Selected = true;
}
else
{
MessageBox.Show("已经到最后一行了!");
}
}
}
```
以上代码实现了在DataGridView中显示学生信息,并且可以通过点击相应行将该行数据显示到TextBox中,也可以在TextBox中修改数据并同步更新到DataGridView中。另外,还实现了两个Button控件,分别用于向上和向下移动选中的行。
阅读全文