Так что я хотел бы сделать это, чтобы создать кнопку для каждого сотрудника в таблице. Например, скажем, у меня есть четыре сотрудника в моих таблицах, поэтому должна быть четыре кнопки, говорящая «платить», я включил скриншот желаемого результата. Я просто не мог придумать какую-либо идею сделать это ... может кто-нибудь помочь, пожалуйста, или любые предложения. Спасибо заранее. Я использую C# и визуальную студию Как сгенерировать кнопку для каждого элемента таблицы?
0
A
ответ
0
Вы можете сделать что-то вроде псевдокода;
foreach(Employee emp in Employees)
{
this.Controls.Add(//add label here with unique id)
this.Controls.Add(//add button here with unique id)
}
* Давайте предположим, что Служащие коллекция типа Employee * Вы, возможно, придется установить местоположение метки и кнопки, чтобы они отображались красиво на форме.
1
Предполагая, что вы используете WinForms (?), Рассмотрели ли вы использование элемента управления DataGridView? Существует тип столбца DataGridViewButtonColumn, который будет соответствовать вашим целям. Создайте форму, отбросьте на нее элемент управления DataGridView и попробуйте этот демонстрационный код:
using System;
using System.Data;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private System.Windows.Forms.DataGridViewButtonColumn ButtonColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn EmployeeColumn;
public Form1()
{
//Add a DataGridView control to your form, call it "dataGridView1"
InitializeComponent();
EmployeeColumn = new System.Windows.Forms.DataGridViewTextBoxColumn()
{
Name = "Employee"
};
ButtonColumn = new System.Windows.Forms.DataGridViewButtonColumn()
{
Text = "Pay"
};
dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { EmployeeColumn, ButtonColumn });
//Populate this as required
var oDataTable = new DataTable();
oDataTable.Columns.Add("Employee", typeof(String));
dataGridView1.Rows.Add("Tom", ButtonColumn.Text);
dataGridView1.Rows.Add("Dick", ButtonColumn.Text);
dataGridView1.Rows.Add("Harry", ButtonColumn.Text);
}
}
}
0
Вы можете сделать это легко. Попробуйте что-то вроде этого:
private void Form1_Load(object sender, EventArgs e)
{
var employees = new string[] { "Emp1", "Emp2", "Emp3", "Emp4" };
int btnTop = 0, btnLeft = 100, lblTop = 0, lblLeft = 20;
foreach (var employee in employees)
{
btnTop += 30; lblTop += 30;
this.Controls.Add(new Label { Text = employee, Left = lblLeft, Top = lblTop, Width = 50 });
this.Controls.Add(new Button { Text = "Pay", Left = btnLeft, Top = btnTop, Width = 50 });
}
}
Пройдите через таблицу сотрудников и добавьте любой элемент управления, который вы хотите.
Возможный дубликат [Как добавить кнопки динамически в мою форму?] (Http://stackoverflow.com/questions/8608311/how-to-add-buttons-dynamically-to-my-form) –
Сделайте это внутри цикл, который показывает сотрудников, кстати, что вы сделали до сих пор? –
DataGridViewButtonColumn https://msdn.microsoft.com/en-us/library/bxt3k60s.aspx – Serg