ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
نکته های مفید و حرفه ای در سی شارپ C#
01-08-2016, 04:17 AM (آخرین ویرایش در این ارسال: 01-08-2016 09:59 PM، توسط amin8505.)
ارسال: #21
RE: نکته های مفید و حرفه ای در سی شارپ C#
استفاده از یک header column text (عنوان ستون) برای دو ستون

اگر بخواهیم برای هر دو ستون در دیتا گرید ویو , یک عنوان مثل شکل زیر قرار دهیم می توانیم از کد زیر استفاده کنیم.
[تصویر:  csharp181094.jpg]

کد:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.dataGridView1.Columns.Add("JanWin", "Win");
        this.dataGridView1.Columns.Add("JanLoss", "Loss");
        this.dataGridView1.Columns.Add("FebWin", "Win");
        this.dataGridView1.Columns.Add("FebLoss", "Loss");
        this.dataGridView1.Columns.Add("MarWin", "Win");
        this.dataGridView1.Columns.Add("MarLoss", "Loss");
        this.dataGridView1.Columns.Add("AprWin", "Win");
        this.dataGridView1.Columns.Add("AprLoss", "Loss");
        this.dataGridView1.Columns.Add("MayWin", "Win");
        this.dataGridView1.Columns.Add("MayLoss", "Loss");

        for (int j = 0; j < this.dataGridView1.ColumnCount; j++)
        {
            this.dataGridView1.Columns[j].Width = 45;
        }

        this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
        this.dataGridView1.ColumnHeadersHeight = this.dataGridView1.ColumnHeadersHeight * 2;
        this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
        this.dataGridView1.CellPainting += new DataGridViewCellPaintingEventHandler(dataGridView1_CellPainting);
        this.dataGridView1.Paint += new PaintEventHandler(dataGridView1_Paint);
        this.dataGridView1.ColumnWidthChanged += new DataGridViewColumnEventHandler(dataGridView1_ColumnWidthChanged);
    }


    private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
    {
        Rectangle rtHeader = this.dataGridView1.DisplayRectangle;
        rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
        this.dataGridView1.Invalidate(rtHeader);
    }

    private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
    {
        Rectangle rtHeader = this.dataGridView1.DisplayRectangle;
        rtHeader.Height = this.dataGridView1.ColumnHeadersHeight / 2;
        this.dataGridView1.Invalidate(rtHeader);
    }

    private void dataGridView1_Paint(object sender, PaintEventArgs e)
    {
        string[] monthes = { "Emp Info", "", "", "", "" };
        for (int j = 0; j < 10; )
        {
            Rectangle r1 = this.dataGridView1.GetCellDisplayRectangle(j, -1, true);
            int w2 = this.dataGridView1.GetCellDisplayRectangle(j + 1, -1, true).Width;
            r1.X += 1;
            r1.Y += 1;
            r1.Width = r1.Width + w2 - 2;
            r1.Height = r1.Height / 2 - 2;
            e.Graphics.FillRectangle(new SolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1);
            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;
            e.Graphics.DrawString(monthes[j / 2],
            this.dataGridView1.ColumnHeadersDefaultCellStyle.Font,
            new SolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor),
            r1,
            format);
            j += 2;
        }
    }

    private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    {
        if (e.RowIndex == -1 && e.ColumnIndex > -1)
        {
            Rectangle r2 = e.CellBounds;
            r2.Y += e.CellBounds.Height / 2;
            r2.Height = e.CellBounds.Height / 2;
            e.PaintBackground(r2, true);
            e.PaintContent(r2);
            e.Handled = true;
        }
    }
}

اضافه کردن یک سطر خالی به انتهای دیتا گرید ویو

با استفاده از دستور زیر می تونید هر تعداد سطر خالی که دوست داشته باشید به انتهای دیتا گرید ویو اضافه کنید.

کد:
(dataGridView1.DataSource as DataTable).Rows.Add((dataGridView1.DataSource as DataTable).NewRow());
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
01-08-2016, 06:25 AM (آخرین ویرایش در این ارسال: 01-08-2016 09:59 PM، توسط amin8505.)
ارسال: #22
چک کردن تعداد زیادی radio button
چک کردن تعداد زیادی radio button
اگه تعداد زیادی radio button در فرم داشته باشیم مثلا 20 تا و بخواهیم با زدن یه دکمه اونها رو چک کنیم، نوشتن تعداد زیادی شرط نیاز است .اما شما می تونید با استفاده از دستور زیر این کار رو به سادگی انجام بدید.

کد:
RadioButton rb;
private void button1_Click(object sender, EventArgs e)
{
foreach (Control c in Controls)
{
if (c is RadioButton)
{
rb = (RadioButton)c;
if (rb.Checked)
}
//کد مورد نیاز
break;
{
}
}

}
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
01-26-2016, 09:48 AM (آخرین ویرایش در این ارسال: 01-26-2016 09:50 AM، توسط amin8505.)
ارسال: #23
بدست آوردن مشخصات یک نقطه در چارت سی شارپ با رفتن موس بر روی آن
با نوشتن کد زیر هر وقت که موس روی چارت (chart)ویندوز حرکت کنه طول و عرض اون نقطه داخل یک tooltip نشون داده میشه و شما می تونید طول و عرض اون نقطه رو بدست بیارید.
کد:
ToolTip tooltip = new ToolTip();
        Point? prevPosition = null;
        Point? clickPosition = null;
        private void chart1_MouseMove(object sender, MouseEventArgs e)
        {
            var pos = e.Location;
            if (prevPosition.HasValue && pos == prevPosition.Value)
                return;
            tooltip.RemoveAll();
            prevPosition = pos;
            var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea);
            foreach (var result in results)
            {
                if (result.ChartElementType == ChartElementType.PlottingArea)
                {
                    var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
                    var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);

                    tooltip.Show("X=" + xVal + ", Y=" + yVal, this.chart1,
                                 pos.X, pos.Y - 15);
                    b = (int)xVal;
                }
            }
        }
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان