我正在开发一个具有树视图控件的VB.NET 2010项目.我想弄清楚的第一件事是如何在当前选定的节点之后插入一个新节点,然后使新插入的节点成为所选节点.我可以插入新节点没问题,但我无法弄清楚如何使它成为"选定"节点.下面的注释行是我要挂断的部分.
Private Sub AddNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddNode.Click
If Not treeview1.SelectedNode Is Nothing Then
treeview1.Nodes.Insert(treeview1.SelectedNode.Index + 1, TextBox1.Text)
treeview.SelectedNode = treeview1.Nodes.Item(treeview1.SelectedNode.Index + 1) ' <-- I thought this would work, but it doesn't
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
其次,我使用下面的代码向上移动一个选定的节点(相对于其他节点).这工作正常,但与上面的问题类似,我无法弄清楚如何在移动后将该节点保持为"选定"节点.
Private Sub NodeUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NodeUp.Click
Dim CurrentIndex As Integer = treeview1.SelectedNode.Index
Dim CurrentNode As TreeNode = treeview1.SelectedNode
treeview1.SelectedNode.Remove()
treeview1.Nodes.Insert(CurrentIndex - 1, CurrentNode)
End Sub
Run Code Online (Sandbox Code Playgroud)
这必须很简单,但是我正在试图弄清楚我的大脑是什么,所以我很欣赏这里的一些见解.
谢谢!
我有一个VB.NET(2010)项目,其中包含一个通用列表,我试图找出如何从列表中删除任何"空"项目.当我说"空"时,我的意思是任何不包含任何实际字符的项目(但它可能包含任何数量的空格,或根本没有空格).
例如,让我们说这是我的清单......
Dim MyList As New List(Of String)
MyList.Add("a")
MyList.Add("")
MyList.Add("b")
MyList.Add(" ")
MyList.Add("c")
MyList.Add(" ")
MyList.Add("d")
Run Code Online (Sandbox Code Playgroud)
我需要它,这样如果我对该列表进行了计数,它将返回4个项目,而不是7个.例如......
Dim ListCount As Integer = MyList.Count
MessageBox.Show(ListCount) ' Should show "4"
Run Code Online (Sandbox Code Playgroud)
如果有类似的东西会很好
MyList.RemoveEmpty
Run Code Online (Sandbox Code Playgroud)
无论如何......过去几个小时我一直在寻找Google的解决方案,但到目前为止还没有找到任何解决方案.所以...任何想法?
顺便说一句,我的目标是这个项目的.NET 2.0框架.
提前致谢!
[VB.NET 2010]
假设我有几个 My.Resources 项目(每个项目都是包含几段文本的纯文本文件)。
假设资源项名称对应于不同类型的音乐,例如 My.Resources.Rock、My.Resources.Blues、My.Resources.Jazz 等。
根据用户在文本框中键入的内容,程序应该访问正确的 My.Resources 项目,并在富文本框中显示该项目的文本内容。
例如,如果用户在文本框中键入“Blues”,那么我需要访问 My.Resources.Blues 的内容,并将其显示在富文本框中。
像这样的东西(当然不起作用)......
Dim ResourceName As String = TextBox1.Text
Dim ResourceContents As String = My.Resources.ResourceName
RichTextBox1.Text = ResourceContents
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来完成这项任务?
[使用VB 2010 / Winforms]
我有一个带有几列的DataGridView。它是未绑定的,并且未连接到任何类型的数据库或任何数据库-我只是根据用户输入逐个单元地填充它。
因此,无论如何,DGV中的列之一的类型为“图像”(DataGridViewImageColumn)。
我想做的是,只要单击其中一个图像单元,就会在单击图像单元的确切位置显示上下文菜单栏。
到目前为止,这就是我所得到的...
Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim columnName As String = DataGridView1.Columns(e.ColumnIndex).Name
If columnName = "Image" Then
Me.Status_ContextMenuStrip1.Show(Me.DataGridView1.CurrentCell.ContentBounds.Location) ' <-- This isn't right, but I must be close!
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
当我运行上述代码并单击图像单元格时,将显示上下文菜单,但它显示在屏幕的左上角。如何使它显示在所单击的单元格所在的确切位置?我实际上希望它显示在所单击的单元格的正下方,因此它具有与组合框“下拉”类似的视觉效果(而且我知道如何尽快偏移X和Y坐标)将其放在需要放置的地方附近)。
谢谢!