только два клиента одновременно подключаются к серверу (программирование сокетов)

NumericUpDown - это элемент управления, который наследует от композитного управления UpDownBase . Он содержит регулятор UpDownEdit и UpDownButtons . UpDownEdit является TextBox. Вы можете изменить внешний вид элемента управления и его детей. Например, вы можете добавить Label в элемент управления текстовым полем и прикрепить его справа от TextBox, а затем установить текстовые поля текстового поля, отправив сообщение EM_SETMARGINS , чтобы получить такой результат:

Код

using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class ExNumericUpDown : NumericUpDown
{
    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hwnd, int msg, int wParam, int lParam);
    private const int EM_SETMARGINS = 0xd3;
    private const int EC_RIGHTMARGIN = 2;
    private Label label;
    public ExNumericUpDown() : base()
    {
        var textBox = Controls[1];
        label = new Label() { Text = "MHz", Dock = DockStyle.Right, AutoSize = true };
        textBox.Controls.Add(label);
    }
    public string Label
    {
        get { return label.Text; }
        set { label.Text = value; if (IsHandleCreated) SetMargin(); }
    }
    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);
        SetMargin();
    }
    private void SetMargin()
    {
        SendMessage(Controls[1].Handle, EM_SETMARGINS, EC_RIGHTMARGIN, label.Width << 16);
    }
}

-1
задан Nouf 31 March 2019 в 23:18
поделиться