黑体字下面是要这样吗? vb的代码 我不太懂,只会c#的, 但是给你个思路, 就是纵向合并单元格嘛。
创新互联专注于当涂网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供当涂营销型网站建设,当涂网站制作、当涂网页设计、当涂网站官网定制、微信小程序服务,打造当涂网络公司原创品牌,更为您提供当涂网站排名全网营销落地服务。
我贴一段c#的代码,。, 您理解下, 应该不困难。。。
代码 把AllowUserToAddRows设置为false
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
//纵向合并
if (this.dataGridView1.Columns["Name"].Index == e.ColumnIndex e.RowIndex = 0)
{
using (
Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
backColorBrush = new SolidBrush(e.CellStyle.BackColor))
{
using (Pen gridLinePen = new Pen(gridBrush))
{
// 擦除原单元格背景
e.Graphics.FillRectangle(backColorBrush, e.CellBounds);
/**/
////绘制线条,这些线条是单元格相互间隔的区分线条,
////因为我们只对列name做处理,所以datagridview自己会处理左侧和上边缘的线条
if (e.RowIndex != this.dataGridView1.RowCount - 1)
{
try
{
if (e.Value.ToString() != this.dataGridView1.Rows[e.RowIndex +
1].Cells[e.ColumnIndex].Value.ToString())
{
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,
e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线
//绘制值
if (e.Value != null)
{
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
Brushes.Crimson, e.CellBounds.X + 2,
e.CellBounds.Y + 2, StringFormat.GenericDefault);
}
}
}
catch (Exception ex)
{
}
}
else
{
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,
e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线
//绘制值
if (e.Value != null)
{
e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
Brushes.Crimson, e.CellBounds.X + 2,
e.CellBounds.Y + 2, StringFormat.GenericDefault);
}
}
//右侧的线
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
e.CellBounds.Top, e.CellBounds.Right - 1,
e.CellBounds.Bottom - 1);
e.Handled = true;
}
}
}
}
下面是我用的datatable 这个dataset是网上copy的
DataSet dataset = new DataSet();//库
//表
DataTable myfriends = new DataTable("myfriends");
//列
DataColumn dcName = new DataColumn();
dcName.ColumnName = "Name";
dcName.DataType = typeof(string);
dcName.MaxLength = 8;
DataColumn dcPhone = new DataColumn();
dcPhone.ColumnName = "telephone";
dcPhone.DataType = typeof(string);
dcPhone.MaxLength = 11;
//添加列
myfriends.Columns.Add(dcName);
myfriends.Columns.Add(dcPhone);
//添加1行
DataRow row = myfriends.NewRow();//得到空行
row["Name"] = "小明";
row["telephone"] = "13888888888";
DataRow row1 = myfriends.NewRow();//得到空行
row1["Name"] = "小明";
row1["telephone"] = "15859859888";
DataRow row2 = myfriends.NewRow();//得到空行
row2["Name"] = "猪猪";
row2["telephone"] = "15999999999";
myfriends.Rows.Add(row);
myfriends.Rows.Add(row1);
myfriends.Rows.Add(row2);
//添加表到dataset
dataset.Tables.Add(myfriends);
dataGridView1.DataSource = myfriends;
加了单引号就是一个常量字符串了,对于每一行都是一样的
像这种放在最前面的字段,order by 1 就可以了
建议用 DataGridView(你用的是它吧?)内建的排序方法来排序。介绍和示例代码可以参考MSDN:
你这个是冒泡排序么?从大到小么?
For j = 0 To lstNetworkRisk.Items.Count - 1 应该改成
For j = i To lstNetworkRisk.Items.Count - 1
另外尽量不要用GOTO语句。而且完全也可以不用这个GOTO。
还有不知道你用的什么版本的.net 如果是3.5的完全可以直接用linq。
第一题:
不需要任何控件,代码如下:
Private Sub Form_Click()
Dim A() As Integer, N As Integer
Dim St As String, I As Integer, J As Integer
Randomize
Do
St = InputBox("数字的个数", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
N = Int(Val(St))
If N 1 Then
MsgBox "请输入大于0的数字!"
Else
Exit Do
End If
End If
Loop
ReDim A(N)
For I = 1 To N
Do
St = InputBox("第" + Str(I) + "个数字", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
A(I) = Int(Val(St))
Exit Do
End If
Loop
Next
For I = 1 To N - 1
For J = I + 1 To N
If A(I) A(J) Then
A(0) = A(I)
A(I) = A(J)
A(J) = A(0)
End If
Next
Next
For I = 1 To N
Open App.Path "\" Trim(Str(I)) ".txt" For Output As #1
Print #1, A(I)
Close #1
Next
Print "已经把"; N; "个数写入到"; App.Path; "\1.txt 到 "; N; ".txt中.请查看."
End Sub
'已经运行过.
第二题:
DIM 是变量声明语句,它的格式为:
dim 变量名[as 格式] [,变量名[as 格式][,变量名[as 格式]......]
其中:
变量名:以字母或汉字开始的字串,代表一个变量
格式有以下几种:
属于数字的有五种:
(1)字节型:byte可取值0-255
(2)整形:integer可取值-32768至32767
(3)长整形:long(可取值范围很大的正负整数)
(4)单精度型:single(可取值小数)
(5)双精度型:double(可取值范围更大,小数位数更多的小数)
字符串型:string(可代表由字母\数字或汉字组成的字符集合)
布尔型:boolean(取值为ture\false)
日期型:date(可表示形如2009-5-26 02:36这样的组合)
如果要用姓名\住址\单位名称...等用字符串型(string)
eg:dim name as string(用name变量表示名字时,声明成字符串变量)
如果是用数字需要做计算,如工资\合计\人数....等要用数字型,但有一个原则,优先选用范围小的(按照字节型(byte)\整形(integer)\长整形(long)\单精度型(single)\双精度型(double)的顺序选择),够用就可以了,这样可以占用内存少,运算速度快.
eg:dim count as integer(用integer表示员工人数时,可声明成整形变量)
eg:dim sum as single(用sum表示工资时,可声明成单精度型变量)
不知是否说得清楚了.