PDA

View Full Version : سوال: جلوگیری از خارج شدن موس از فرم



shahryars
شنبه 14 فروردین 1395, 17:06 عصر
سلام
یادمه توی VB یه کد بود که میشد باهاش از خارج شدم موس از فرم جلوگیری کرد.
مثلا بعد از فشردن یک دکمه از اون به بعد دیگه نشانگر موس نمیتونست از کادر خارج شه

ایا همچین چیزی داریم توی C#‎‎؟

ممنون از استادان

Hadi-Hashemi
شنبه 14 فروردین 1395, 17:36 عصر
ببین این منظورتونه؟



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MultiLanguage
{
public partial class Form1 : Form
{

private int X = 0;
private int Y = 0;

public Form1()
{
InitializeComponent();
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (Cursor.Position.X < this.Bounds.X + 50)
X = Cursor.Position.X + 20;
else
X = Cursor.Position.X - 20;

if (Cursor.Position.Y < this.Bounds.Y + 50)
Y = Cursor.Position.Y + 20;
else
Y = Cursor.Position.Y - 20;
}

private void Form1_MouseLeave(object sender, EventArgs e)
{
Cursor.Position = new Point(X, Y);
}

private void Form1_MouseEnter(object sender, EventArgs e)
{
Cursor.Clip = this.Bounds;
}
}
}

shahryars
یک شنبه 15 فروردین 1395, 07:22 صبح
خیلی ممنون ولی من میخوام بعد از این که روی یک دکمه کلیک کردیم این اتفاق بیفته.
فکر کنم کدش ساده تر از اینا باشه

Hadi-Hashemi
یک شنبه 15 فروردین 1395, 08:07 صبح
خب میتونین یه متغییر bool تعریف کنین و مقدارشو مثلا false کنین. توی دگمه هم بیایین و true کنین.

کدهای نوشته شده توی رویداد موس رو هم ببرین توی یه if و متغییر رو به عنوان شرط قرار بدین.

البته اگه کد ساده تر پیدا کردین حتما اینجا به اشتراک بذارین تا ما هم استفاده کنیم.

amirc901
یک شنبه 15 فروردین 1395, 10:27 صبح
Cursor.Clip = new Rectangle(this.Location.X,this.Location.Y, this.Width, this.Height);



فقط اگه خواستید دوباره موس بتونه از فرم خارج بشه از کد زیر استفاده کنید
Cursor.Clip=new Rectangle(0,0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);