আমি জানি যে আমি উইন্ডোস্টেটের মাধ্যমে বর্তমান অবস্থা পেতে পারি, তবে আমি জানতে চাই যে ব্যবহারকারী যখন ফর্মটি ন্যূনতম করার চেষ্টা করবে তখন কোনও ঘটনা ঘটবে কিনা।
আমি জানি যে আমি উইন্ডোস্টেটের মাধ্যমে বর্তমান অবস্থা পেতে পারি, তবে আমি জানতে চাই যে ব্যবহারকারী যখন ফর্মটি ন্যূনতম করার চেষ্টা করবে তখন কোনও ঘটনা ঘটবে কিনা।
উত্তর:
আপনি পুনরায় আকার দিন ইভেন্টটি ব্যবহার করতে পারেন এবং ইভেন্টের ফর্মগুলি W উইন্ডোস্টেট সম্পত্তিটি পরীক্ষা করতে পারেন।
private void Form1_Resize ( object sender , EventArgs e )
{
if ( WindowState == FormWindowState.Minimized )
{
// Do some stuff
}
}
ফর্মটি ছোট করার আগে প্রবেশ করতে আপনাকে ডাব্লুড্রপ্রোক পদ্ধতিতে ডুবে যেতে হবে:
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xF020;
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected override void WndProc(ref Message m)
{
switch(m.Msg)
{
case WM_SYSCOMMAND:
int command = m.WParam.ToInt32() & 0xfff0;
if (command == SC_MINIMIZE)
{
// Do your action
}
// If you don't want to do the default action then break
break;
}
base.WndProc(ref m);
}
অন্যান্য উত্তরগুলি উল্লেখ করার সাথে ফর্মটি ইভেন্টের মধ্যে হুক হ্রাস করার পরে প্রতিক্রিয়া জানাতে Resize
(সম্পূর্ণতার জন্য এখানে অন্তর্ভুক্ত করা হয়েছে):
private void Form1_Resize (object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do your action
}
}
আমি কোনও নির্দিষ্ট ইভেন্টের কথা জানি না , তবে Resize
ফর্মটি ন্যূনতম করা হলে ইভেন্টটি ছড়িয়ে পড়ে, আপনি FormWindowState.Minimized
সেই ইভেন্টটির জন্য পরীক্ষা করতে পারেন
যারা ডাব্লুপিএফ উইন্ডোগুলি মিনিমাইজিং ইভেন্টগুলির জন্য অনুসন্ধান করেন তাদের জন্য:
এটি কিছুটা আলাদা। কলব্যাকের জন্য উইন্ডোস্টেট ব্যবহার করুন:
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do some stuff
}
}
ব্যবহারের ইভেন্টটি স্টেটচেনজড (পরিবর্তে পুনরায় আকার দিন):
public Main()
{
InitializeComponent();
this.StateChanged += Form1_Resize;
}