Как установить элементы флажка winform, отмеченные при нажатии на флажок или его текст? - PullRequest
0 голосов
/ 19 января 2019

Я использую контроль списка флажков в моем приложении формы окна.Когда пользователь щелкает по любой строке, эта строка становится синей, и мы получаем ее проверенный статус по следующему коду

private void clbRoles_ItemCheck(object sender, ItemCheckEventArgs e)
{
.
.
.
}

Как сделать выбор флажка только при нажатии на флажок или его текст?

Не нажимая на строку за пределами текстовой области флажка.

1 Ответ

0 голосов
/ 19 января 2019

Что-то в вашем коде (возможно, обработчик событий, как предлагает @markorial) вызывает такое поведение. Учтите, что с помощью кода, подобного приведенному ниже, вы можете только активировать сам флажок (или его ярлык), чтобы активировать его.

class CheckBoxesWindow: Form {
    public Window()
    {
        this.Build();

        var row1 = new ListViewItem( "Do the dishes", 0 );
        row1.SubItems.Add( "High" );
        row1.Checked = true;

        var row2 = new ListViewItem( "Wash sheets", 1 );
        row2.SubItems.Add( "Average" );

        this.lvView.Items.AddRange( new ListViewItem[]{ row1, row2 } );
    }

    void Build()
    {
        var lv = this.BuildListView();

        this.Controls.Add( lv );
        this.Show();
    }

    ListView BuildListView()
    {
        int width = this.ClientSize.Width;
        var toret = new ListView{ Dock = DockStyle.Fill };

        toret.View = View.Details;
        toret.CheckBoxes = true;
        toret.Columns.Add( "Desc", (int) ( width * 0.70 ), HorizontalAlignment.Center );
        toret.Columns.Add( "Priority", (int) ( width * 0.30 ), HorizontalAlignment.Right );

        this.lvView = toret;
        return toret;
    }

    ListView lvView;
}

Надеюсь, это поможет.

...