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

如何让单个事件处理程序处理所有Button.Click事件?

在我的程序中,我有9个按钮,尽管每个事件处理程序中的代码都是相同的,但每个按钮都有9个独立的事件处理程序.事实证明,更改所有这些代码非常繁琐.是否可以创建一个Button.Click事件处理程序来处理所有按钮的Button.Click事件?

.net vb.net events button event-handling

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

如何在VB6代码中找到UI元素?

我没有使用VB的经验,但是我已经查看了相当多的数据并且无法解决这个问题.

我目前正在为VB.net应用程序重新创建一个VB6应用程序.在选择某些选项之前,有许多元素是隐藏的.显然,没有在窗体上创建元素会给我这个错误:

在此输入图像描述

看看VB6环境,我在右边的下拉菜单中找到了mDNP变量,但它并没有告诉我它在哪里,或者它是什么类型的UI元素.它旁边显示菜单,但我已经浏览了所有菜单,无法在任何地方找到它.

在此输入图像描述

vb.net vb6 winforms

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

我是否需要2个不同的PInvokes来获取和设置鼠标速度?

我想获得当前鼠标指针的速度,我想设置它.

为了得到它,我使用

Public Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" (ByVal uAction As Int32, ByVal uParam As Int32, ByRef lpvParam As Int32, ByVal fuWinIni As Int32) As Int32

    Dim Result As Int32 = 0
    Dim iSuccess As Integer = SystemParametersInfo(SPI_GETMOUSESPEED, 0, Result, 0)
Run Code Online (Sandbox Code Playgroud)

设置它,我用

   Public Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" (ByVal uAction As Int32, ByVal uParam As Int32, ByVal lpvParam As Int32, ByVal fuWinIni As Int32) As Int32

    Dim iVal As Integer = 10
    Dim iSuccess As Integer …
Run Code Online (Sandbox Code Playgroud)

.net vb.net api pinvoke

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

获取扩展文件信息详细信息

如何使用VB.net获取Windows文件的详细信息?

我所指的详细信息类型是当我右键单击文件(例如MS Word文档),然后单击“属性”并选择“详细信息”选项卡时发现的那些信息。

我知道可以通过FileInfo获得某些信息,但不能全部获得,例如“ Tags”。谢谢

vb.net windows filesystems

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

我如何一次一个地给玩家洗牌和发牌?

这是我到目前为止发现自己卡住了.=/

Private Sub Dealbtn_Click(sender As Object, e As EventArgs) Handles Dealbtn.Click  
     Dim Suits() As String  = {"S", "D", "C", "H"} 
     Dim Faces() As String = {"2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A"}  
     Dim rand As New Random  
     Dim rand1 As Integer = rand.Next(12)  
     Dim rand2 As Integer = rand.Next(3)  
     Label2.Text() = Faces(rand1) + Suits(rand2)  
End Sub
Run Code Online (Sandbox Code Playgroud)

.net vb.net class

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

如何在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
查看次数

"已经有一个开放的DataReader ......"重用或配置数据库连接?

请帮助....当我从Mysql表中选择数据时,它显示"已经有一个与此Connection相关的开放DataReader必须先关闭.vb.net" 错误显示..

Private Sub cmbJobCategoryVisa_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbJobCategoryVisa.SelectedIndexChanged
    ''"
    Dim MyCommand As New MySqlCommand("SELECT jobcategorycode FROM jobcategory WHERE jobcategory='" & Me.cmbJobCategoryVisa.SelectedItem & "'", MyConnection)
    Dim MyReader As MySqlDataReader = MyCommand.ExecuteReader
    While MyReader.Read
        If MyReader.HasRows = True Then
            Me.txtJobCategoryCodeVisa.Text = MyReader("jobcategorycode")
        End If
    End While
    MyReader.Close()
    MyCommand.Dispose()
End Sub
Run Code Online (Sandbox Code Playgroud)

'''在下面的代码执行时,',显示成像错误

    Private Sub txtEmpNo_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtEmpNo.Validating
    Dim MyCommand5 As New MySqlCommand("SELECT * FROM employeesmaster WHERE empno='" & Me.txtEmpNo.Text & "'", …
Run Code Online (Sandbox Code Playgroud)

.net vb.net connection-pooling

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

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

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

我返回的文件是:

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
查看次数

在没有数据源的情况下在ComboBox上设置DisplayMember和ValueMember

我想在一个DisplayMember和一个只有4个值的a ValueMemberComboBox保持一致。

是否可以不使用DataTableas DataSource也可以不创建类?

我想要类似的东西:

ValueMember= "Fixed"  
DisplayMember= "Specific and unique number"

ValueMember= "Multiple"  
DisplayMember= "Multiple and different numbers"

ValueMember= "Repeated"  
DisplayMember= "One number repeated x times"
Run Code Online (Sandbox Code Playgroud)

.net vb.net combobox

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

在ListView中访问ProgressBar

我有以下代码,我想弄清楚,但我完全难过.我将进度条添加到列表视图中,但我真的不知道如何访问每个进度条以更新进度值.

public ProgressBar LvAddProgB(ListView LV, int LVII, int LVColI, string lvName)
{
    Rectangle SizeR = default(Rectangle);
    ProgressBar ProgBar = new ProgressBar();

    SizeR = LV.Items[LVII].Bounds;
    SizeR.Width = LV.Columns[LVColI].Width;
    if (LVColI > 0)
    {
        SizeR.X = SizeR.X + LV.Columns[LVColI - 1].Width;
    }
    ProgBar.Parent = LV;
    ProgBar.Name = lvName;
    ProgBar.SetBounds(SizeR.X, SizeR.Y, SizeR.Width, SizeR.Height);
    ProgBar.Visible = true;
    ProgBar.Maximum = 1000;
    ProgBar.Step = 1;

    return ProgBar;
}

private void button1_Click(object sender, EventArgs e)
{
    for (int x = 0; x < 3; ++x)
    {
        ListViewItem …
Run Code Online (Sandbox Code Playgroud)

.net c# listview

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