私のdatagridviewにはread only
、いくつかの列がありますので、いくつかの色で指定しました。読み取り専用を含むすべての列を含む事前ビューでDGVをロードすると。ユーザーが通常表示をクリックしたときに、通常のeitable列を表示し、読み取り専用の列と色を非表示にします。
私はtelerikを使用していて、radgridを使用しています。
以下のアプローチを試しましたが、機能しません。これを行うためのより良い方法はありますか?ありがとうございました。
private void normalToolStripMenuItem_Click(object sender, EventArgs e)//Normal View
{
DTURradGridView.Columns[2].IsVisible = false;
DTURradGridView.Columns[3].IsVisible = false;
DTURradGridView.Columns[4].IsVisible = false;
DTURradGridView.Columns[5].IsVisible = false;
DTURradGridView.Columns[7].IsVisible = false;
DTURradGridView.Columns[11].IsVisible = false;
DTURradGridView.Columns[2].ReadOnly = false;
DTURradGridView.Columns[3].ReadOnly = false;
DTURradGridView.Columns[4].ReadOnly = false;
DTURradGridView.Columns[5].ReadOnly = false;
DTURradGridView.Columns[7].ReadOnly = false;
DTURradGridView.Columns[11].ReadOnly = false;
DTURradGridView.CellFormatting -= DTURradGridView_CellFormatting;
}
private void advancedToolStripMenuItem_Click(object sender, EventArgs e) //Advanced View
{
DTURradGridView.Columns[2].IsVisible = true;
DTURradGridView.Columns[3].IsVisible = true;
DTURradGridView.Columns[4].IsVisible = true;
DTURradGridView.Columns[5].IsVisible = true;
DTURradGridView.Columns[7].IsVisible = true;
DTURradGridView.Columns[11].IsVisible = true;
DTURradGridView.Columns[2].ReadOnly = true;
DTURradGridView.Columns[3].ReadOnly = true;
DTURradGridView.Columns[4].ReadOnly = true;
DTURradGridView.Columns[5].ReadOnly = true;
DTURradGridView.Columns[7].ReadOnly = true;
DTURradGridView.Columns[11].ReadOnly = true;
DTURradGridView.CellFormatting += DTURradGridView_CellFormatting;
}
private void DTURradGridView_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.CellElement.ColumnIndex != 2 && e.CellElement.ColumnIndex != 3 && e.CellElement.ColumnIndex != 4
&& e.CellElement.ColumnIndex != 5 && e.CellElement.ColumnIndex != 7 && e.CellElement.ColumnIndex != 11) return;
e.CellElement.DrawFill = true;
e.CellElement.NumberOfColors = 1;
e.CellElement.BackColor = Color.LightSlateGray;
e.CellElement.GradientStyle = GradientStyles.Linear;
}
通常のビューをクリックすると、列インデックス2、3、4、5の色が表示されます。したがって、-=は機能していません。