3个回答
展开全部
C#----DataGridView控件60招
1. DataGridView当前的单元格属性取得、变更
2. DataGridView编辑属性
3. DataGridView最下面一列新追加行非表示
4. DataGridView判断当前选中行是否为新追加的行
5. DataGridView删除行可否设定
6. DataGridView行列不表示和删除
1.当前的单元格属性取得、变更
[C#]
'当前选中单元的值
Console.WriteLine(DataGridView1.CurrentCell.Value)
'当前列的Index值
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)
'当前单元的行Index值
Console.WriteLine(DataGridView1.CurrentCell.RowIndex)
'将控件中(0, 0)处的值,赋给当前单元格.
DataGridView1.CurrentCell =DataGridView1[0, 0]
2.DataGridView编辑属性
全部单元格编辑属性
[C#]
'DataGridView1只读属性
DataGridView1.ReadOnly = True
指定行列单元格编辑属性
[C#]
DataGridView1.Columns[1]ReadOnly = True
DataGridView1.Rows[2].ReadOnly = True
DataGridView1[0, 0].ReadOnly = True
根据条件判断单元格的编辑属性
下例中column2的值是True的时候,Column1设为可编辑
[C#]
代码
private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (this.DataGridView1.Columns[e.ColumnIndex].Name.ToString().Equals("Column2"))
{
if (DataGridView1["Column2", e.RowIndex].Value.ToString().ToLower().Equals("true"))
{
DataGridView1["Column1", e.RowIndex].ReadOnly = false;
}
else
{
DataGridView1["Column1", e.RowIndex].ReadOnly = true;
}
}
}
3.DataGridView最下面一列新追加行非表示
[C#]
DataGridView1.AllowUserToAddRows = False
4.判断当前选中行是否为新追加的行
[C#]
if (DataGridView1.CurrentRow.IsNewRow)
{
Console.WriteLine("当前行,是新添加的行");
}
else
•
• 2楼
• {
Console.WriteLine("当前行,不是新添加的行");
}
5. DataGridView删除行可否设定
[C#]
DataGridView1.AllowUserToDeleteRows = False
根据条件判断当前行是否要删除
[C#]
代码
1 private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
2 {
3
4
5
6 if (MessageBox.Show("确定要删除吗?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.OK))
7 {
8
9 }
10 else
11 {
12 e.Cancel = true;
13 }
14 }
6. DataGridView行列不表示和删除
行列不表示
[C#]
'DataGridView1的第一列不表示
DataGridView1.Columns[0].Visible = False
'DataGridView1的第一行不表示
DataGridView1.Rows[0].Visible = False
行列表头部分不表示
[C#]
DataGridView1.ColumnHeadersVisible = False
DataGridView1.RowHeadersVisible = False
指定行列删除
[C#]
DataGridView1.Columns.Remove("Column1")
DataGridView1.Columns.RemoveAt(0)
DataGridView1.Rows.RemoveAt(0)
选择的行列删除(多行列)
[C#]
'DataGridView1删除选中的行
foreach (DataGridViewRow r in DataGridView1.SelectedRows)
{
if (!r.IsNewRow)
{
DataGridView1.Rows.Remove(r);
}
}
<!--[endif]-->
7. DataGridView行列宽度高度设置为不能编辑
8. DataGridView行高列幅自动调整
9. DataGridView指定行列冻结
10. DataGridView列顺序变更可否设定
11. DataGridView行复数选择
12. DataGridView选择的行、列、单元格取得
7. DataGridView行列宽度高度设置为不能编辑
[C#]
'DataGridView1的列的宽设为不能编辑
• 2010-4-27 17:47
• 回复
• 010-4-27 17:47
• 回复
•
• 苏小寺
• 2位粉丝
• 4楼
{
Console.WriteLine(c.ColumnIndex + "," + c.RowIndex);
}
'输出选择的行位置
Console.WriteLine("选择的行位置")
foreach (DataGridViewRow r in dgvBeforeStep.SelectedRows)
{
Console.WriteLine(r.Index);
}
''输出选择的列位置
foreach (DataGridViewColumn col in dgvBeforeStep.SelectedColumns)
{
Console.WriteLine(col.Index);
}
指定行、列、单元格取得
[C#]
'(0, 0)的选中
DataGridView1[0, 0].Selected = True
'Index为1的行选中
DataGridView1.Rows[1].Selected = True
'Index为2的列选中
DataGridView1.Columns[2].Selected = True
<!--[endif]-->
13. DataGridView指定单元格是否表示
14. DataGridView表头部单元格取得
15. DataGridView表头部单元格文字列设定
16. DataGridView选择的部分拷贝至剪贴板
17.DataGridView粘贴
18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,
弹出说明信息)
13. DataGridView指定单元格是否表示
[C#]
if (DataGridView1 [2,0].Displayed&& DataGridView1 [2,0].Visible)
{
DataGridView1.CurrentCell = DataGridView1[2,0];
}
14. DataGridView表头部单元格取得
[C#]
'DataGridView1第一列表头改变
DataGridView1.Columns[0].HeaderCell.Value = "第一列"
'DataGridView1第一行表头改变
DataGridView1.Rows[0].HeaderCell.Value = "第一行"
'DataGridView1左上角单元格值改变
DataGridView1.TopLeftHeaderCell.Value = "左上"
15. DataGridView表头部单元格文字列设定
更改列Header表示文字列
[C#]
'DataGridView1改变第一列头部单元格文字
DataGridView1.Columns[0].HeaderText = "第一列"
更改行Header表示文字列
[C#]
'DataGridView1行的头部单元格为序号
for (int i = 0; i < DataGridView1.Rows.Count-1; i++)
{
DataGridView1.Rows[i].HeaderCell.Value=i.ToString();
}
'行的宽度自动调节
DataGridView1.AutoResizeRowHeadersWidth(
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
最左上Header单元格文字列
[C#]
'修改最左上单元格
DataGridView1.TopLeftHeaderCell.Value = "/"
16. DataGridView选择的部分拷贝至剪贴板
拷贝模式设定
[C#]
DataGridView1.ClipboardCopyMode =
DataGridViewClipboardCopyMode.EnableWithoutHeaderText
选中部分拷贝
[C#]
Clipboard.SetData return; Object(DataGridView1.GetClipboardContent())
17.DataGridView粘贴
[C#]
代码
if (DataGridView1.CurrentCell.Value == null)
{
}
int insertRowIndex = DataGridView1.CurrentCell.RowIndex;
string pasteText=Clipboard.GetText();
if(string.IsNullOrEmpty(pasteText))
{
return;
}
string[] lines=pasteText.Split('\r');
bool isHeader=true;
foreach(string line in lines)
1. DataGridView当前的单元格属性取得、变更
2. DataGridView编辑属性
3. DataGridView最下面一列新追加行非表示
4. DataGridView判断当前选中行是否为新追加的行
5. DataGridView删除行可否设定
6. DataGridView行列不表示和删除
1.当前的单元格属性取得、变更
[C#]
'当前选中单元的值
Console.WriteLine(DataGridView1.CurrentCell.Value)
'当前列的Index值
Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)
'当前单元的行Index值
Console.WriteLine(DataGridView1.CurrentCell.RowIndex)
'将控件中(0, 0)处的值,赋给当前单元格.
DataGridView1.CurrentCell =DataGridView1[0, 0]
2.DataGridView编辑属性
全部单元格编辑属性
[C#]
'DataGridView1只读属性
DataGridView1.ReadOnly = True
指定行列单元格编辑属性
[C#]
DataGridView1.Columns[1]ReadOnly = True
DataGridView1.Rows[2].ReadOnly = True
DataGridView1[0, 0].ReadOnly = True
根据条件判断单元格的编辑属性
下例中column2的值是True的时候,Column1设为可编辑
[C#]
代码
private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (this.DataGridView1.Columns[e.ColumnIndex].Name.ToString().Equals("Column2"))
{
if (DataGridView1["Column2", e.RowIndex].Value.ToString().ToLower().Equals("true"))
{
DataGridView1["Column1", e.RowIndex].ReadOnly = false;
}
else
{
DataGridView1["Column1", e.RowIndex].ReadOnly = true;
}
}
}
3.DataGridView最下面一列新追加行非表示
[C#]
DataGridView1.AllowUserToAddRows = False
4.判断当前选中行是否为新追加的行
[C#]
if (DataGridView1.CurrentRow.IsNewRow)
{
Console.WriteLine("当前行,是新添加的行");
}
else
•
• 2楼
• {
Console.WriteLine("当前行,不是新添加的行");
}
5. DataGridView删除行可否设定
[C#]
DataGridView1.AllowUserToDeleteRows = False
根据条件判断当前行是否要删除
[C#]
代码
1 private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
2 {
3
4
5
6 if (MessageBox.Show("确定要删除吗?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.OK))
7 {
8
9 }
10 else
11 {
12 e.Cancel = true;
13 }
14 }
6. DataGridView行列不表示和删除
行列不表示
[C#]
'DataGridView1的第一列不表示
DataGridView1.Columns[0].Visible = False
'DataGridView1的第一行不表示
DataGridView1.Rows[0].Visible = False
行列表头部分不表示
[C#]
DataGridView1.ColumnHeadersVisible = False
DataGridView1.RowHeadersVisible = False
指定行列删除
[C#]
DataGridView1.Columns.Remove("Column1")
DataGridView1.Columns.RemoveAt(0)
DataGridView1.Rows.RemoveAt(0)
选择的行列删除(多行列)
[C#]
'DataGridView1删除选中的行
foreach (DataGridViewRow r in DataGridView1.SelectedRows)
{
if (!r.IsNewRow)
{
DataGridView1.Rows.Remove(r);
}
}
<!--[endif]-->
7. DataGridView行列宽度高度设置为不能编辑
8. DataGridView行高列幅自动调整
9. DataGridView指定行列冻结
10. DataGridView列顺序变更可否设定
11. DataGridView行复数选择
12. DataGridView选择的行、列、单元格取得
7. DataGridView行列宽度高度设置为不能编辑
[C#]
'DataGridView1的列的宽设为不能编辑
• 2010-4-27 17:47
• 回复
• 010-4-27 17:47
• 回复
•
• 苏小寺
• 2位粉丝
• 4楼
{
Console.WriteLine(c.ColumnIndex + "," + c.RowIndex);
}
'输出选择的行位置
Console.WriteLine("选择的行位置")
foreach (DataGridViewRow r in dgvBeforeStep.SelectedRows)
{
Console.WriteLine(r.Index);
}
''输出选择的列位置
foreach (DataGridViewColumn col in dgvBeforeStep.SelectedColumns)
{
Console.WriteLine(col.Index);
}
指定行、列、单元格取得
[C#]
'(0, 0)的选中
DataGridView1[0, 0].Selected = True
'Index为1的行选中
DataGridView1.Rows[1].Selected = True
'Index为2的列选中
DataGridView1.Columns[2].Selected = True
<!--[endif]-->
13. DataGridView指定单元格是否表示
14. DataGridView表头部单元格取得
15. DataGridView表头部单元格文字列设定
16. DataGridView选择的部分拷贝至剪贴板
17.DataGridView粘贴
18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,
弹出说明信息)
13. DataGridView指定单元格是否表示
[C#]
if (DataGridView1 [2,0].Displayed&& DataGridView1 [2,0].Visible)
{
DataGridView1.CurrentCell = DataGridView1[2,0];
}
14. DataGridView表头部单元格取得
[C#]
'DataGridView1第一列表头改变
DataGridView1.Columns[0].HeaderCell.Value = "第一列"
'DataGridView1第一行表头改变
DataGridView1.Rows[0].HeaderCell.Value = "第一行"
'DataGridView1左上角单元格值改变
DataGridView1.TopLeftHeaderCell.Value = "左上"
15. DataGridView表头部单元格文字列设定
更改列Header表示文字列
[C#]
'DataGridView1改变第一列头部单元格文字
DataGridView1.Columns[0].HeaderText = "第一列"
更改行Header表示文字列
[C#]
'DataGridView1行的头部单元格为序号
for (int i = 0; i < DataGridView1.Rows.Count-1; i++)
{
DataGridView1.Rows[i].HeaderCell.Value=i.ToString();
}
'行的宽度自动调节
DataGridView1.AutoResizeRowHeadersWidth(
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
最左上Header单元格文字列
[C#]
'修改最左上单元格
DataGridView1.TopLeftHeaderCell.Value = "/"
16. DataGridView选择的部分拷贝至剪贴板
拷贝模式设定
[C#]
DataGridView1.ClipboardCopyMode =
DataGridViewClipboardCopyMode.EnableWithoutHeaderText
选中部分拷贝
[C#]
Clipboard.SetData return; Object(DataGridView1.GetClipboardContent())
17.DataGridView粘贴
[C#]
代码
if (DataGridView1.CurrentCell.Value == null)
{
}
int insertRowIndex = DataGridView1.CurrentCell.RowIndex;
string pasteText=Clipboard.GetText();
if(string.IsNullOrEmpty(pasteText))
{
return;
}
string[] lines=pasteText.Split('\r');
bool isHeader=true;
foreach(string line in lines)
展开全部
如果已经有objectdatsource, 直接绑定数据源就可以了。如果没有,新建一个数据源,然后选择源文件,就会有提示教你如何操作下去了。
更多追问追答
追问
如何新建数据源
追答
不用语法那么复杂的,直接见面可以点击。
非要用语法的话,你可以到网上去找一下IO流的方法,可以将TXT文本内容读取出来,然后转换成LIST,再转换成DataSet,就可以用GV绑定了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定可以啊。
就把你的txt文本做为数据源来读取就好了。
就把你的txt文本做为数据源来读取就好了。
追问
怎么读取 具体语法是什么呢 我的文本数据是用indexof和substring 街区的字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询