2

次のようなルールに一致する場合、特定のボタンを非表示にする方法はありますか? 以下は、ボタン列を作成するために使用されるコードと、一致を取得するためのコードです。

BookButtonCell.Visible = false; を試しましたが、読み取り専用だと表示されます。

ありがとう。

 private void Form1_Load(object sender, EventArgs e)
     {          
            DataGridViewButtonColumn bookbutton = new DataGridViewButtonColumn();
            {
                bookbutton.HeaderText = "Book";
                bookbutton.Text = "Book";
                bookbutton.Name = "Book";
                bookbutton.UseColumnTextForButtonValue = true;
            }
            readalleventsdataGridView.Columns.Add(bookbutton); 


                int x = 0;
                foreach (DataGridViewRow gridRow in readalleventsdataGridView.Rows)
                {
                    DataGridViewCell BookButtonCell = gridRow.Cells["Book"];
                    DataGridViewCell EndDateCell = gridRow.Cells["EndDate"];
                    String StrTodayDate = DateTime.Now.ToString("dd/MM/yy");
                    DateTime TodayDate = Convert.ToDateTime(StrTodayDate);
                    String StrEndDate = EndDateCell.Value.ToString();
                    DateTime EndDate = Convert.ToDateTime(StrEndDate);
                    int result = DateTime.Compare(EndDate, TodayDate);
                    if (result < 0)
                        {
                          What Commands To Hide The Button?
                        }
                        x++;
                    }
        }
4

5 に答える 5

2

DataGridViewButtonColumn Visibleプロパティは ReadOnly プロパティです。

ボタンのように見えますが、それでも でありDataGridViewButtonColumn、可視性に関する規則は同じです。つまり、Ravi が提案するようなことを行うか、DataGridView.CellContentClickイベントを処理して、ボタンがアクティブであるかどうかをテストし、そうでない場合はイベントを飲み込む必要があるということです。

上記のリンクから:

このプロパティは、Visible プロパティが false に設定されたセルがまたは列にあるかどうかを示します。

于 2012-05-06T06:12:31.897 に答える
1

.Visibleに設定できるプロパティを探していますfalse

于 2012-05-06T03:35:45.963 に答える
1

visible他の人がすでに書いているように、プロパティはありません。しかし、私が今日見つけた簡単なトリックがあり、同じトピックに関する別の投稿で回答として提供しました (他の投稿は実際にはこれの複製です):
https://stackoverflow.com/a/29010384/2505186
概要:スタイルのプロパティ left 値が列幅よりも大きい値に設定されているセルに、
別の を割り当てます。 これにより、ボタンがセルの表示領域の外に移動します。:-)DataGridViewCellStylepadding

于 2015-03-12T13:01:04.090 に答える
0

ご存知のように、datagridviewセルの表示を変更することはできません。

行または列を無効にする必要があります。頭の中で描くと、gridviewcellが見えない場合は見栄えが良くないことがわかります。

そのため、datagridviewcellの読み取り専用プロパティが表示されます。このコードを使用してください

DataGridViewButtonCell dgvbc = new DataGridViewButtonCell();
            dgvbc.ReadOnly = true;

別の方法は、セルの前景または背景を、ユーザーがそれを使用できないことを理解できる色に変更することです:)

少なくともこのコードを使用すると、butoonを無効にできます。

于 2012-05-06T06:21:06.247 に答える
0
yourButton.Visible=false, which will hide the button from displaying

あなたはこのように試すことができます

 if (result < 0)
{
  BookButtonCell.Visible=false;
}

編集:Gridviewの場合、Gridviewでこの無効化ボタンを確認できます

于 2012-05-06T03:36:52.393 に答える