WinForm Layout
- DataGridView 並新增兩個 DataGridViewTextBoxColumn
- DataGridView.ReadOnly = false,新增控件 ReadOnly 預設值
- DataGridViewColumn1.ReadOnly = false,新增控件 ReadOnly 預設值
- DataGridViewColumn2.ReadOnly = true,新增控件後,故意把 ReadOnly 設為 true
- 以上三個 ReadOnly 在文章內容中,統稱預設值
- 兩個 Button
namespace dgvReadOnly
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
StringBuilder sb = new StringBuilder();
private void button1_Click(object sender, EventArgs e)
{
sb.Clear();
sb.AppendLine($"DataGridView.ReadOnly:{dataGridView1.ReadOnly}");
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
sb.AppendLine($"DataGridViewColumn.ReadOnly:{col.ReadOnly}");
}
MessageBox.Show(sb.ToString());
}
bool ReadOnly = true;
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.ReadOnly = ReadOnly;
ReadOnly = !ReadOnly;
}
}
}
執行階段:
- 圖一:在設計階段建立好的預設值
- 圖二:透過 Button 變更 DataGridView.ReadOnly = true 後,發現 DataGridViewColumn.ReadOnly 也會全部一起改變為 true
- 圖三:再次把 DataGridView.ReadOnly = false 之後,發現圖一設計階段 DataGridViewColumn.ReadOnly 預設值已經回不來啦
設計階段才是想記錄的重點,因為很混亂,Orz
把 DataGridView.ReadOnly 設為 true 後,並不會像執行階段一樣,把 DataGridViewColumn.ReadOnly 也設為 true
DataGridViewColumn1.ReadOnly 仍維持 false 狀態
DataGridViewColumn2.ReadOnly 竟然變成 false
觀察 Designer.cs 的 ReadOnly 狀態
- DataGridView.ReadOnly = true
- DataGridViewColumn1.ReadOnly = false
- DataGridViewColumn2.ReadOnly = true
DataGridView.ReadOnly 變更後,DataGridViewColumn.ReadOnly 和 Designer.cs,在設計階段彼此之間對應不起來,Orz
結論:就不要管設計階段 DataGridViewColumn.ReadOnly 設定值是甚麼,一律以 DataGridView.ReadOnly 在執行階段設定值為主,並注意一下從 ReadOnly = true 變成 false,DataGridViewColumn.ReadOnly 就通通為 false,並不會是設計階段的預設值喔
沒有留言:
張貼留言