파일 드래그 앤 드롭을 지원하도록 WebBrowser 컨트롤 확장
2276 단어 WebBrowser
public partial class UserControl1 : WebBrowser
{
private const int WmDropfiles = 0x233;
[DllImport("shell32.dll")]
private static extern uint DragQueryFile(IntPtr hDrop, uint iFile, StringBuilder lpszFile, uint cch);
[DllImport("shell32.dll")]
private static extern void DragAcceptFiles(IntPtr hWnd, bool fAccept);
protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
//
if (!DesignMode)
{
DragAcceptFiles(Handle, true);
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WmDropfiles)
{
#region
//
var count = DragQueryFile(m.WParam, 0xffffffff, null, 0);
//
var filePaths = new string[count];
for (uint i = 0; i < count; i++)
{
var sb = new StringBuilder();
DragQueryFile(m.WParam, i, sb, 1024);
filePaths[i] = sb.ToString();
}
#endregion
//
var isCancel = false;
#region
if (DragFile != null)
{
var args = new DragFileEventArgs(filePaths);
DragFile(this, args);
isCancel = args.IsCancel;
}
#endregion
if (isCancel) return;
}
base.WndProc(ref m);
}
public event EventHandler<DragFileEventArgs> DragFile;
public class DragFileEventArgs : EventArgs
{
private readonly string[] _filePaths;
public bool IsCancel { get; set; }
public DragFileEventArgs(string[] filePaths)
{
_filePaths = filePaths;
}
public string[] FilePaths
{
get { return _filePaths; }
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[정수리] C# WinForm Webbrowser 아날로그 로그인 카드수요에 따라 자동 로그인 카드 찍기 기능을 완성하여 주요 코드를 공유합니다. 부족한 점이 있으면 가르쳐 주십시오! 프로필을 읽고 출석체크를 할 계정과 비밀번호를 얻습니다. 자신의 사용자 이름과 비밀번호가 명문인 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.