小编Ňɏs*_*arp的帖子

使用可浏览,可扩展字段创建属性

为了澄清我的要求,请查看设计器中的Font属性.单击其下拉列表时,您将获得ForeColor,ImeMode,Language等选项.

我想要同样的下拉列表,允许我输入我自己添加到设计器的属性的多个值(它将用于我的自定义控件中的数据库属性,并为您提供选择版本,类型等的选项. ).

我该怎么做呢?我看了一遍,我找不到解决方案.

谢谢.

.net vb.net typeconverter

4
推荐指数
1
解决办法
674
查看次数

如何更改DataGridView列的宽度

我有一个带有datagridview的vb.net windows窗体应用程序.我希望找到一种方法来更改datagridview中多列的宽度.这是我到目前为止所做的,但它只改变了第一列的宽度,而不是其余的.我感谢您给予的任何帮助.

Dim columnwidth1 As DataGridViewColumn = DataGridView1.Columns(0)
        columnwidth1.Width = 100

Dim columnwidth2 As DataGridViewColumn = DataGridView1.Columns(1)
        columnwidth2.Width = 100

Dim columnwidth3 As DataGridViewColumn = DataGridView1.Columns(2)
        columnwidth3.Width = 100

Dim columnwidth4 As DataGridViewColumn = DataGridView1.Columns(3)
        columnwidth4.Width = 100
Run Code Online (Sandbox Code Playgroud)

.net vb.net datagridview width

3
推荐指数
1
解决办法
3万
查看次数

如何从字符串中删除空字符(零字符)

我一直试图从我的字符串中删除所有零字符

我的字符串是由这些十六进制字节组成的

00 44 00 65 00 6C 00 70 00 68 00 69

对于每个字母,前面都有一个零字节(空字节).我猜测我必须使用某种Unicode编码或宽编码才能获得没有那些零的文本.

但我无法理解,所以我认为最好的方法是使用替换,但即使失败.

Dim packet() As String = {&H0, &H44, &H0, &H65, &H0, &H6C, &H0, &H70, &H0, &H68, &H0, &H69}
Dim str As String = Encoding.ASCII.GetString(packet, 0, 12)
str = str.Replace("\0", "")  'Compiles and fails
str = str.Replace(\0, "")  'No compile
str = str.Replace('\0', "")  'No compile
Run Code Online (Sandbox Code Playgroud)

vb.net unicode ascii character-encoding null-character

3
推荐指数
2
解决办法
2万
查看次数

获取图形卡功能等硬件信息

我正在编写一个使用图形卡验证的程序.我尝试过多种方式; 我找到的最接近的是使用:

lblGrapics.Text = infotypes.VideocardName.GetName()
Run Code Online (Sandbox Code Playgroud)

但自动返回等于1.我怎样才能获得卡名和其他说明?

.net vb.net wmi

3
推荐指数
1
解决办法
4742
查看次数

在vb.net中洗牌一串字符串

我正在vb.net中开发一个网页,它将为用户生成一些多项选择题.我需要将已经放入数组的四个答案洗牌.让我们假设我必须遵循数组:

array = {"Correct", "Wrong1", "Wrong2", "Wrong3"}
Run Code Online (Sandbox Code Playgroud)

我试着使用以下方法:

Public Shared Function Shuffle(ByVal items() As String) As Array
        Dim max_index As Integer = items.Length - 1
        Dim rnd As New Random(DateTime.Now.Millisecond)
        For i As Integer = 0 To max_index
            ' Pick an item for position i.
            Randomize()
            Dim j As Integer = rnd.Next(i, max_index)
            ' Swap them.
            Dim temp As String = items(i)
            items(i) = items(j)
            items(j) = temp
        Next i
        Return items
    End Function
Run Code Online (Sandbox Code Playgroud)

该功能工作得非常好,但我的问题是,如果我有四个问题,每个问题的答案都会被洗牌,但正确的答案将在一个位置,如:

    array = {"Wrong1", "Correct", "Wrong2", …
Run Code Online (Sandbox Code Playgroud)

.net vb.net arrays

3
推荐指数
1
解决办法
4277
查看次数

如何比较两个字符串列表以查找相同的字符串

我有两个包含一组名称的字符串列表,我想知道的是如何比较这两个列表以找到相同的名称,然后编写一个if语句,该语句执行基于比较的操作。

清单1:Philip Bob Michael

清单2:James Peter Bob

.net vb.net string list

3
推荐指数
1
解决办法
1703
查看次数

过滤PropertyGrid中Enum属性的下拉列表

我在PropertyGrid中显示对象的属性.其中一个属性是枚举.因此,它使用组合框编辑器显示,该编辑器列出了枚举的所有值.这一切都很棒,但我需要在运行时过滤枚举值列表.我不能用Browsable属性装饰一些枚举值,因为我想要隐藏的值会有所不同.目前我倾向于定制的UITypeEditor,但我认为我应该首先与智能人员核实.

.net c# propertygrid enums

3
推荐指数
1
解决办法
1880
查看次数

在字符串中插入一个字符(indexof)

我想要做的是将所需的字符(如“空格”)插入所需的字符串(如“123456789”)的特定点。示例:在字符串 123456789 = 1234 56789 中的位置 5 处插入一个空格。这是我的代码:

    Dim str As String = sum2.Text '123456789
    Dim insStr As String = " " 'space
    Dim strRes As String = str.Insert(5, insStr) '5th position
Run Code Online (Sandbox Code Playgroud)

代码看起来不错,当我使用它或运行它时,我没有收到任何错误,但它不会在第五个位置添加空格,所以我需要一些帮助!

vb.net string character

3
推荐指数
1
解决办法
8448
查看次数

如何在PropertyGrid中插入EventsTab?

这是交易,我有一些集合要插入到验证类中,我试图让它能够插入到Visual Studio的编辑器IDE中并解释所有上下文(如果还不够,请问我)我想要PropertyGrid以显示EventsTab这样在Visual Studio的IDEPropertyGrid VS Editor中的EventsTab

但问题是我已经检查了winforms源代码并且我能理解我已经发现为了插入Button for EventsTab我们必须调用ShowEventsButton(true)PropertyGrid的私有方法但是不能工作(用反射调用它)

那么到目前为止我尝试了什么......

  • Caliing AddRefTab使用参数传递EventsTab(私有方法)
  • 使用true参数调用SetupToolbar(私有方法)
  • 调用RefreshTabs
  • 将所有TooltipItens设置为Visible
  • 调用ShowEventsButton(true)

编辑

我在这个方案中有两个类,其中一个是Validation类,它继承自IValidation接口,它有我想在propertyGrid中显示的事件,另一个类是一个ControlValidator,它派生自一个组件并且有一个列表验证

编辑2

更具体地说,我想要完成的是在这个CollectionEditor中使用CollectionEditor(用于编辑DataGridView的列的相同窗口)我想让它在PropertyGrid中显示EventsTab(实际上我想要制作它)它与VisualStudio IDE的PropertyTab完全相同,但我不在那部分但是,所以我想要显示的事件和属性是ControlValidator(组件)的List/Collection

让我试着说清楚一点 类图 正如您所看到的,Control Validator有一个IValidation接口的集合,它是组件所以它应该并且正在这样工作 ControlValidator应该正常工作 你可以看到它没有在IDE中显示事件选项卡,因为它没有任何事件,但如果你双击controlValidator的Validations属性,它会打开CollectionEditor,其中有一个PropertyGrid CollectionEditor 作为一个PropertyGrid,我试图让它显示eventsTab(我无法以我在其中列出的任何方式显示它)

.net c# collections visual-studio winforms

2
推荐指数
1
解决办法
866
查看次数

如何按文件名和编号对文件列表进行排序?

我在一个目录中有一堆文件,我试图根据它们的类型来获取它们。一旦我拥有它们,我想按文件名对它们进行排序(其中有一个数字,我想以这种方式对它们进行排序)

我返回的文件是:

file-1.txt
file-2.txt
...
file-10.txt
file-11.txt
...
file-20.txt
Run Code Online (Sandbox Code Playgroud)

但我得到它们的顺序看起来更接近于这个:

file-1.txt
file-10.txt
file-11.txt
...
file-2.txt
file-20.txt
Run Code Online (Sandbox Code Playgroud)

现在我正在使用Directory.GetFiles()并尝试使用该linq OrderBy房产。但是,我在排序文件列表(如上面的第一个列表)时需要执行的操作非常失败。

Directory.GetFiles()似乎正在返回字符串列表,因此我无法获取文件属性列表,例如filenamename

这是我目前的代码:

documentPages = Directory.GetFiles(documentPath, "*.txt").OrderBy(Function(p) p).ToList()
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?

linq vb.net sorting

2
推荐指数
1
解决办法
3054
查看次数