을 찾는 방법 toolstripitem 에 따라 이름을 변수를 변경하고 그것의 가치 확인

0

질문

나는 ContextMenuStrip 라: DGVContextStrip 그 때 표시되는 사용자를 마우스 오른쪽 단추로 클릭 내 datagridview.

는 MenuStrip 이라는 항목 포함 AddUpgradeTagToolStripMenuItem 을 포함하는 하위 항목(dropdownitems),이러한 서브 아이템은 모든 지명된 번호에서 자신의 이름입니다. 예를 들어: Add1ToolStripMenuItem, Add2ToolStripMenuItem, Add3ToolStripMenuItem.... 을 때까지 Add25ToolStripMenuItem.

할 때 사용자를 마우스 오른쪽 단추로 클릭,에 Datagridview,를 확인하고 싶어하는 경우는 셀 수를 포함"1"그리하면 그것은 Add1ToolStripItem.checked = true

것 이라고 생각 루프를 통해 숫자 1~25,그리고 각 루프에서 확인하는 경우에는 셀 담 1 면 true 로 변경을 확인 값의 메뉴 항목을 선택합니다. 다.

For i = 1 to 25
  If DataGridView1.SelectedRows(0).Cells("Text_Field").Value.ToString.Contains(i) then
  CType("Add" & i & "ToolStripMenuItem", ToolStripMenuItem).Checked = True

Next

하지만 이것은 작동하지 않는,iv 예를 보인 것을 사용하여 제어합니다.찾는 방법만을 얻을 수 없었는 작업에 대한 나의 사용입니다. 예를 들어

Dim ControlName As String = "Add" & i & "ToolStripMenuItem"
CType(Me.Controls.Find(ControlName, True), ToolStripMenuItem).Checked = True

어떤 아이디어가 어떻게 작동하려면 이? 제가 실감 나는 사용할 수 있는 25 만약 그런 다음 다른 문 하지만 나는 종류의 원한을 유지하는 코드 멀 깔끔.

1

최고의 응답

1

ToolStripItem 지 컨트롤을 검색에 Control.ControlCollection. 필요하신 검색 ToolStripItemCollection 는 아름다운 풍경을 즐길 수 있습니다.

Control.ControlCollection.Find 방법 ToolStripItemCollection.Find 메서드를 수행할 수 있습 깊은 항목을 검색할 수 있습니다.

예를 당신의 경우:

Dim itemName As String = $"Add{i}ToolStripMenuItem"
Dim tsmi = yourContextMenuStrip.Items.
    Find(itemName, True).
    OfType(Of ToolStripMenuItem).
    FirstOrDefault()

If tsmi IsNot Nothing Then
    tsmi.Checked = True
End If

또,이미 알고 있는 경우에는 대상 품목의 하나이 AddUpgradeTagToolStripMenuItem 드롭다운 항목은 다음을 할 수 있습니다:

Dim itemName As String = $"Add{i}ToolStripMenuItem"
Dim tsmi = DirectCast(AddUpgradeTagToolStripMenuItem, ToolStripMenuItem).
    DropDownItems.OfType(Of ToolStripMenuItem).
    FirstOrDefault(Function(x) x.Name.Equals(itemName, StringComparison.OrdinalIgnoreCase))

If tsmi IsNot Nothing Then
    tsmi.Checked = True
End If

해야 하는 경우에 확인하는 단 하나의 컬렉션에서 항목:

Dim itemName As String = $"Add{i}ToolStripMenuItem"

For Each tsmi In DirectCast(AddUpgradeTagToolStripMenuItem, ToolStripMenuItem).
    DropDownItems.OfType(Of ToolStripMenuItem)

    If tsmi.Name.Equals(itemName, StringComparison.OrdinalIgnoreCase) Then
        tsmi.Checked = True
    Else
        tsmi.Checked = False
    End If
Next
2021-11-12 18:27:29

감사합니다,당신의 첫 번째 옵션은 나를 위해 일했습니다. 실제로 얻을 수 없는 두 번째 옵션을 사용하려면,그것은 간단한 것이 컴파일되지 않을 마음을 Visual Studio 에 인식하지 않았다 어떠한 오류도록 코드에는 이유를 모르겠어요 그것은 없을 컴파일.
Andy Andromeda

@AndyAndromeda 당신을 환영합니다. 으로 두 번째 옵션의 오류,내가 알지 못합니다. 그것은 나를 위해 작동합니다.
dr.null

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................