C ++ CLI错误,堆叠轨迹栏(奇怪的视觉效果和崩溃)

时间:2016-12-20 14:37:28

标签: winforms drop-down-menu c++-cli trackbar

我真的需要帮助,但没有人给我任何信息。所以我想我只是做了一篇很长的帖子,详细说明了问题和我的代码。就像启动信息一样,这是一个C ++ DLL,它在加载到另一个程序或强制注入时加载表单。

首先,我正在堆叠一些轨道栏。根据下拉框菜单的选择,某些轨迹栏将出现,而某些轨迹栏将会出现。每个轨迹栏都有各自的值。表示它的最佳方式就像是一个类。

Player1 - > R,G,B履带板 Player2 - > R,G,B履带栏

所以每个玩家都有3.在下拉列表中切换玩家会导致这些切换。所以把它放在设计师身上就像这样:

enter image description here

它没有表现得太好,但它们会直接相互影响并且每次都会切换。在设计师中,您显然只能看到3,而其他人则位于顶部。

我像这样创建它们:

        this->trackbar_TeamBlue->Location = System::Drawing::Point(491, 225);
        this->trackbar_TeamBlue->Maximum = 255;
        this->trackbar_TeamBlue->Name = L"trackbar_TeamBlue";
        this->trackbar_TeamBlue->Size = System::Drawing::Size(153, 45);
        this->trackbar_TeamBlue->TabIndex = 10;
        this->trackbar_TeamBlue->Visible = false;

每一个都是一样的。在表单初始化时,我将所有Team轨道栏设置为不可见,并将所有敌人轨道栏设置为可见:

        trackbar_TeamRed->Visible = 0;
        trackbar_TeamGreen->Visible = 0;
        trackbar_TeamBlue->Visible = 0;

        trackbar_EnemyBlue->Visible = 1;
        trackbar_EnemyGreen->Visible = 1;
        trackbar_EnemyRed->Visible = 1;

下拉框菜单很可能不会导致问题,但无论如何都是这样创建的:

        this->dropdown_ESPColour->BackColor = System::Drawing::SystemColors::ScrollBar;
        this->dropdown_ESPColour->FormattingEnabled = true;
        this->dropdown_ESPColour->Items->AddRange(gcnew cli::array< System::Object^  >(4) { L"Enemy", L"Team", L"Weapons", L"Bomb" });
        this->dropdown_ESPColour->Location = System::Drawing::Point(353, 177);
        this->dropdown_ESPColour->Name = L"dropdown_ESPColour";
        this->dropdown_ESPColour->Size = System::Drawing::Size(121, 21);
        this->dropdown_ESPColour->TabIndex = 0;
        this->dropdown_ESPColour->Text = L"Enemy";

所以基本上,只要用下拉列表选择索引0,我就可以使用TeamRed轨道栏集。而索引1,TeamBlue轨道栏可以使用。如果更改了下拉选项,我决定做一个非常简单的功能来切换它们。

System::Void dropdown_ESPColour_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
    if (dropdown_ESPColour->SelectedIndex == 0) {
        trackbar_EnemyBlue->Visible = 1;
        trackbar_EnemyGreen->Visible = 1;
        trackbar_EnemyRed->Visible = 1;

        trackbar_TeamRed->Visible = 0;
        trackbar_TeamGreen->Visible = 0;
        trackbar_TeamBlue->Visible = 0;

    }
    else if (dropdown_ESPColour->SelectedIndex == 1) {
        trackbar_EnemyBlue->Visible = 0;
        trackbar_EnemyGreen->Visible = 0;
        trackbar_EnemyRed->Visible = 0;

        trackbar_TeamRed->Visible = 1;
        trackbar_TeamGreen->Visible = 1;
        trackbar_TeamBlue->Visible = 1;

    }
}

因此构建此表单可以正常工作。将其加载到程序或任何其他方法工作正常。这是加载的实际表单的图像:

enter image description here

正如你所看到的那样,一切都很好,花花公子。请注意我现在还没有改变任何东西。这就是表单加载的内容。我可以更改这些跟踪栏上的所有值。现在尝试更改为其他类别,您将看到发生奇怪的视觉效果,出现一个没有滑块的简单灰色框。在图像中你看不到灰盒但我可以向你保证,那是100%。出于某种原因,这些图像上的条纹看起来是白色而不是我的屏幕。

enter image description here

每当我点击这个灰色区域时,他们就会认为它们是表格崩溃的地方。如果我更改了下拉框,那么它们会再次出现并且正常工作。有人知道可能导致这个问题的原因吗?

0 个答案:

没有答案