문제

모달 창에 프로그램 옵션 목록이있는 DataGridView가 있습니다. 그리드에는 두 개의 Collumn이 있습니다. 첫 번째에는 해당 옵션을 선택하기위한 확인란이 포함되어 있으며 Seccond는 해당 옵션의 이름/설명입니다. WinForm에는 OK 및 취소 버튼도 포함되어 있지만 요점 옆에 있습니다. 아래 코드는 내가 원하는 것을 수행합니다. FullRowSelect 속성으로 인해 확인란이 확인/검사되지 않음 해당 행으로 어디서나 클릭하십시오. 그러나 더 이상 현재 행 주위에 파란색 배경이나 점선이 표시되지 않습니다. 현재 기능을 잃지 않고 어떻게 이것을 추가 할 수 있습니까?

편집하다: 정교하게; 내가 원하는 것은 선택한 행/셀에서 점선 및/또는 파란색 배경을 다시 한 번 활성화하는 것입니다. 내가 현재 어떻게 든 이것을 비활성화 한 코드처럼 보입니다 ...

관련 현재 코드 :

public OptionsForm()
{
    InitializeComponent();
    OptionsRoot = Options.GetReadOnlyRoot(OptionsBannersNameValueList.GetNameValueList(Settings.Default.OptionsBanners));
    optionsBannersDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    optionsBannersDataGridView.MultiSelect = false;
    optionsBannersDataGridView.RowPrePaint += new DataGridViewRowPrePaintEventHandler(optionsBannersDataGridView_RowPrePaint);
    InitUI();
    Closing += MyFormClosing;
    BindingSourceTree = BindingSourceHelper.InitializeBindingSourceTree(components, rootBindingSource);
}

private void optionsBannersDataGridView_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    e.PaintParts &= ~DataGridViewPaintParts.Focus;
}
도움이 되었습니까?

해결책 2

내가 마침내하고있는 것은 위에서 언급 한 대부분의 코드를 제거하는 것이 었습니다. 어떤 이유로 Visual Studio에서 속성을 설정할 때는 작동하지 않았지만 이제는 그렇지 않습니다. 나는 거기서 무슨 일이 일어 났는지 모르겠지만 그 요점 옆에 있습니다.

생성자는 이제 다음과 같습니다.

public OptionsForm()
    {
        InitializeComponent();
        AlternativerRoot = Alternativer.GetReadOnlyRoot(AlternativerFanerNameValueList.GetNameValueList(Settings.Default.AlternativerFaner));
        InitUI();
        Closing += MyFormClosing;
        _bindingSourceTree = BindingSourceHelper.InitializeBindingSourceTree(components, rootBindingSource);
    }

속성은 대신 Visual Studio GUI에 설정됩니다. selectionMode는 fullRowSelect로 설정되어 있으며 MultiSelect가 False로 설정됩니다.

나는 아직도 내가 원하는 초점을 얻지 못했기 때문에 선택한 행의 백콜로를 파란색으로 설정하고 Visual Studio에서 예측 명령을 흰색으로 설정했습니다. 이것은 이제 내가 원했던 것처럼 작동합니다.

나는 왜 속성이 왜 일찍 제대로 설정되지 않았는지 모르겠지만 적어도 지금은 작동합니다 : P

다른 팁

나는 그것을 사용하려고 노력할 것이다 .OnCellClick 방법을하고 행 색상을 파란색으로 설정하십시오. 나는 당신이 점선 테두리를 추가 할 수 있어야한다고 생각합니다.

나는 당신이 다음과 같이 부를 수 있다고 생각합니다.

optionsBannersDataGridView.OnCellClick += new DataGridViewCellEventArgs(optionsBannersDataGridView_OnCellClick);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top