분노의 챔질

C# delegate 본문

Programming/C#

C# delegate

분노의블로그 2024. 5. 28. 09:39
반응형
private delegate void UpdateText(Control ctrl, string text);

public void AsyncDisplayText(Control ctrl, string text)
{
    if (ctrl.InvokeRequired)
    {
        ctrl.Invoke(new UpdateText(AsyncDisplayText), new object[] { ctrl, text });
    }
    else
    {
        if (ctrl.AccessibilityObject.Role == AccessibleRole.List)
        {
            ListBox li = ctrl as ListBox;

            li.Items.Insert(0, DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss] ") + text);

            if (li.Items.Count >= 100)
                li.Items.Clear();
        }
        else
            ctrl.Text = text;
    }
}

//사용법
private void button4_Click(object sender, EventArgs e)
{
    AsyncDisplayText(listBox1, "A");
    AsyncDisplayText(label1, "B");
}
반응형

'Programming > C#' 카테고리의 다른 글

C# ini File 읽기/쓰기  (0) 2024.05.28
C# Log파일  (0) 2024.05.28
C# Event  (0) 2024.05.28
C# Windows Media Player 사용하기  (0) 2023.01.11
UltraGrid에서 Ctrl+C  (0) 2021.04.13