데이터 그리드의 단추를 보여주는 인터페이스를 디자인하고 싶습니다. 매일 및 24 시간 동안. 24 * 7 = 168 개의 버튼이 모두 표시됩니다.2 차원 데이터 격자를 표시하는 방법
어떤 방법을 생각 하나?
데이터 그리드의 단추를 보여주는 인터페이스를 디자인하고 싶습니다. 매일 및 24 시간 동안. 24 * 7 = 168 개의 버튼이 모두 표시됩니다.2 차원 데이터 격자를 표시하는 방법
어떤 방법을 생각 하나?
나는 어떻게 완료했는지에 대한 예제 코드를 만들었습니다. 이 코드는 단추 만 생성하므로 체크 아웃하십시오. 참고 : 이름 단추는 자신 만의 방식으로, 나는 예제를 수행했습니다!
dataGridView1.AllowUserToAddRows = false;
for (int i = 0; i < 24; i++)
{
DataGridViewButtonColumn btnColumn = new DataGridViewButtonColumn();
btnColumn.HeaderText = string.Format("{0}:00", i+1);
btnColumn.Name = "dayColumn";
btnColumn.Width = 40; //set yout width
dataGridView1.Columns.Add(btnColumn);
}
for (int i = 0; i < 7; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
dataGridView1[j, i].Value = string.Format("{0}:00", (j + 1));
}
}
-
어쩌면 클릭 몇 가지 버튼 좋은 생각 인 이벤트 핸들러에 가입 :
public Form1()
{
InitializeComponent();
dataGridView1.AllowUserToAddRows = false;
for (int i = 0; i < 24; i++)
{
DataGridViewButtonColumn btnColumn = new DataGridViewButtonColumn();
btnColumn.HeaderText = string.Format("{0}:00", i+1);
btnColumn.Name = "dayColumn";
btnColumn.Width = 40; //set yout width
dataGridView1.Columns.Add(btnColumn);
}
for (int i = 0; i < 7; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
dataGridView1[j, i].Value = string.Format("{0}:00", (j + 1));
}
dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
string day = dataGridView1.Rows[e.RowIndex].HeaderCell.Value.ToString();
string hour = dataGridView1.Columns[e.ColumnIndex].HeaderText.ToString();
MessageBox.Show("you have clciked on day: " + day + ", hour: " + hour);
}
답변 해 주셔서 감사합니다. – user1606328
직접 지정할 수 있습니다 ITypedList
라는 프레임 워크의 인터페이스가있다 데이터 바인딩이 이해하는 방식으로 각 구성 멤버에 대해 표시 할 속성
이런 식으로 바인딩을 시도하는 것이 절대적으로 끔찍한임을 깨달으십시오. 기본 단계는 다음과 같습니다.
ITypedList
을 구현하는 컬렉션 유형을 구현하십시오.PropertyDescriptor
을 반환합니다. 정상로 컬렉션에
(DGVButtons의) 24 개의 열을 만든 다음 7 개의 행을 추가하거나 그 반대입니다. –