可以把某个列为空就当做是空行,你连接字符串是hdr=no,也就是第一行不作为列标题,那么就是用的默认的列标题,F1,F2.。。这些。
站在用户的角度思考问题,与客户深入沟通,找到新津县网站设计与新津县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广、主机域名、网络空间、企业邮箱。业务覆盖新津县地区。
比如,第一列的某行为空的话就当做是空行,你可以加这个条件 where len([F1]) 0
你是想获取总行数?还是选中行和列的索引?
获取总行数:dataGridView1.Rows.Count;
获取当前选中行索引:int
i
=
this.dataGridView1.CurrentRow.Index;
获取当前选中列索引:int
j
=
this.dataGridView1.CurrentCell.ColumnIndex;
在窗体上加上三个标签控件:Label1、Label2、Label3
Private Sub DataGridView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseUp
Dim counter As Integer
Dim SelectedCellTotal As Integer = 0
Dim SelectedCellCount As Integer = 0
For counter = 0 To (DataGridView1.SelectedCells.Count - 1)
If DataGridView1.SelectedCells(counter).FormattedValueType Is _
Type.GetType("System.String") Then
Dim value As String = Nothing
If (DataGridView1.IsCurrentCellDirty = True) Then
value = DataGridView1.SelectedCells(counter).EditedFormattedValue.ToString()
Else
value = DataGridView1.SelectedCells(counter).FormattedValue.ToString()
End If
If value IsNot Nothing Then
If Not value.Length = 0 Then
SelectedCellTotal = SelectedCellTotal + Integer.Parse(value)
SelectedCellCount = SelectedCellCount + 1
End If
End If
End If
Next
Label1.Text = "选中的单元格个数为: " SelectedCellCount.ToString()
Label2.Text = "单元格里数据之和为: " SelectedCellTotal.ToString()
Label3.Text = "选中的单元格行数为:" DataGridView1.SelectedRows.Count.ToString()
End Sub
求行:
RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)+1
这个代码呢,我的理解呢,是获取在selstart的地方的行数。一般来讲selstart的地方都是光标的地方,然后会给你返回line。不过返回的时候要自己加1。不是很懂这个语法,有懂得可以教我一下
以上是求行数。
求列:
For i = 0 To RichTextBox1.SelStart
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart - i) 0 Then Exit For
j = j + 1
Next i
这个for循环呢,讲的是检查这一行光标前有多少个列,然后用J输出列的个数。
因为VB6.0没有RichTextBox1.GetFirstCharIndexOfCurrentLine这种语法。所以就得自己模拟这个过程。
具体怎么检查的呢,首先将 i 从0循环到光标处,
如果 【光标字符数】处的行数 减去 【光标字符数减去 i 个字符数】处的行数小于0了,我写了个不为零。但此时写小于零就可以。那么代表着换行了,同时也代表着光标到上一行之间有多少字。用j存储循环次数,得出对应列数。(我们中文习惯是叫第一列,但程序实际上是第零列,但在循环的时候就注意到并解决这个问题了)
如果你替换写法,例如
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart + i) 0 Then Exit For
j = j + 1
Next i
这个 J 就对应着光标到该行结尾有几个字符了,如果有需要可以使用,但一般不需要。
那么就像上面说的那样,行列都求出来了,最后用事件和TEXT或者caption表现出来就好了
至于说总行数
RichTextBox1.GetLineFromChar(Len(RichTextBox1.Text)) + 1
通过对最后一个字符的位置(总长度)的行来判断呗,不过也得加一。
Visualbasic代码编辑器没有这个功能,但可以用第三方的编辑软件Emedit来实现这个功能。
1、用Emedit打开*.frm文件。
2、点工具,当前配置属性,然后勾选显示行号即可。