Skip to main content

Featured

[XrmToolBox] Use FetchXML Builder

FetchXML Installation : XrmToolBox 1. Open XrmToolBox And Find FetchXML Builder 2. Start FetchXML Builder 3. Click the fetch from node 사용은 Top 또는 Paging 둘 중 하나만 가능 Paging size : 한 페이지에 보여줄 레코드 개수 Dstinct : 페이지에 보여지는 레코드 중복 제거 No-lock : 테이블 lock 거는 것을 풀어줌 (조회 할 때 퍼블리시되지 않은 값도 들어올 수 있음) Page : 페이지 (미입력시 1 페이지) 4. Click entity form node 조회할 Entity Name을 선택 후, Select Attributes 클릭 조회할 Entity의 Attirbute를 선택하여 확인 link-entity 클릭 Relationship을 클릭하여 링크할 관계 선택 후 결과

C# Windows Form Hourglass Cursor


Sometimes  Following Code Doesn't work in program.
    Current.Cursor = Cursors.WaitCursor;
    //Do something
    Current.Cursor = Cursors.Default;


So i Usually used
    Current.Cursor = Cursors.WaitCursor;
    Application.UseWaitCursor = true;
    //Do something
    Application.UseWaitCursor = false;
    Current.Cursor = Cursors.Default;

but i hope to more good code for using so i found it.

It Using WinAPI that definition code is it:

    using System;
    using System.Windows.Forms;

    public class HourGlass : IDisposable {
        public HourGlass() {
            Enabled = true;
        }
        public void Dispose() {
            Enabled = false;
        }
        public static bool Enabled {
            get { return Application.UseWaitCursor; }
            set {
                if (value == Application.UseWaitCursor) return;
                Application.UseWaitCursor = value;
                Form f = Form.ActiveForm;
                if (f != null && f.Handle != null)   // Send WM_SETCURSOR
                    SendMessage(f.Handle, 0x20, f.Handle, (IntPtr)1);
            }
        }
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
    }

And Usage is:
    private void button1_Click(object sender, EventArgs e) {
        using (new HourGlass()) {
            // Do something that takes time...
            System.Threading.Thread.Sleep(2000);
        }
    }


It works by the way it change default cursor if your mouse outside of form.


Comments

Popular Posts