私はLabel1、TextBox1、Button1も含むGroupBox1を含むフォームを持っています。 GroupBox1.Enablesはfalseです。 TextBox1でMouse_Clickをキャプチャまたはシミュレートできますか?はい、あなたは、これは非常に簡単に次のコード行でマウスボタンのキャプチャ
答えて
私は解決策を作成しました。ご意見をお寄せください
using System;
using System.Windows.Forms;
using System.Drawing;
//$/t:winexe
//& RunInOwnWindow
namespace PowerAPP
{
public class MainForm : Form
{
#region Initialization
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label2;
private static void Main(string [] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
MainForm()
{
groupBox1 = new System.Windows.Forms.GroupBox();
button1 = new System.Windows.Forms.Button();
textBox1 = new System.Windows.Forms.TextBox();
label1 = new System.Windows.Forms.Label();
textBox2 = new System.Windows.Forms.TextBox();
label2 = new System.Windows.Forms.Label();
// button1
button1.Name = "Button1";
button1.Location = new System.Drawing.Point(101, 90);
button1.Size = new System.Drawing.Size(75, 24);
button1.Text = "button1";
// textBox1
textBox1.Name = "TextBox1";
textBox1.Location = new System.Drawing.Point(76, 25);
textBox1.Size = new System.Drawing.Size(100, 20);
// label1
label1.Name = "Label1";
label1.Bounds = new Rectangle(35, 22, 146, 28);
label1.BackColor = System.Drawing.Color.Yellow;
label1.Text = "label1";
// textBox2
textBox2.Name = "TextBox2";
textBox2.Location = new System.Drawing.Point(76, 55);
textBox2.Size = new System.Drawing.Size(100, 20);
// label2
label2.Name = "Label2";
label2.Bounds = new Rectangle(35, 52, 146, 28);
label2.BackColor = System.Drawing.Color.Yellow;
label2.Text = "label2";
groupBox1.Name = "GroupBox1";
groupBox1.Controls.Add(button1);
groupBox1.Controls.Add(textBox1);
groupBox1.Controls.Add(label1);
groupBox1.Controls.Add(textBox2);
groupBox1.Controls.Add(label2);
groupBox1.Location = new System.Drawing.Point(35, 34);
groupBox1.Size = new System.Drawing.Size(200, 128);
groupBox1.Text = "groupBox1";
// MainFORm
Name = "MainFOrm";
ClientSize = new System.Drawing.Size(292, 266);
Controls.Add(groupBox1);
Text = "Click Fields to include";
MouseClick += new System.Windows.Forms.MouseEventHandler(MainForm_MouseClick);
groupBox1.Enabled = false;
}
#endregion
private void MainForm_MouseClick(object sender, MouseEventArgs e)
{
Point pt = new Point(e.X, e.Y);
Locate_Point_in_Control_Bounds(this, pt);
}
private void Locate_Point_in_Control_Bounds(Control ctl, Point pt)
{
Rectangle r;
if (ctl is Form || ctl.HasChildren)
{
foreach (Control c in ctl.Controls)
{
if (c.HasChildren) Locate_Point_in_Control_Bounds(c, pt);
r = c.Bounds;
r.Offset(ctl.Left, ctl.Top);
if (r.Contains(pt))
MessageBox.Show(c.Name);
}
}
else
{
r = ctl.Bounds;
r.Offset(ctl.Left, ctl.Top);
if (r.Contains(pt))
MessageBox.Show(ctl.Name);
}
}
}
}
あなたは自分の答えを受け入れることができます.... –
を行うことができます。
private void button1_Click(object sender, EventArgs e)
{
//Disable the groupBox with textBox1 in it
groupBox1.Enabled = false;
//Simulate the Click on textBox1
textBox1_MouseClick(this, new MouseEventArgs(MouseButtons.Left, 1,0,0,0));
}
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show("Test");
}
上記のコードは、別のコントロールにすることができ、私はちょうど例えばButton1を使用。
更新1: グループボックスが有効かどうかは関係ありませんが、textBox1_MouseClick(...)で直接イベントを呼び出すと、常にイベントがキャッチされます。
挨拶
試しましたか?それは動作しません。 –
Mario、返信いただきありがとうございますが、GroupBox1.Enabled = false; – meYnot
はい私はそれを試して、それは動作します。私はそれを証明するためにコードを更新しました。 –
コメントの代わりに回答を投稿することをお勧めします。親を無効にしてから、TextBoxのイベントは発生しません。技術的には、IMessageFilterインターフェイスを実装してその問題を回避できます。しかし、あなたはそれを回避しようとしないことが重要であり、これはすべて設計によって動作し、は決してになります。
あなたのユーザーは、このようなクリックが有用な何かを何百万年も費やすことは決してありません。無効にしておくと、は非常にになります。それが必要です。クリックがあれば、おそらく事故になります。あなたは、事故を起こしたり、完全に発見できないコードの機能を公開したりすることはありません。
あなたは正しいですが、私はいくつかの管理者のコントロールとオプションのためにボタンを追加するよりもスペースを確保する必要があります。 – meYnot
私はそれが何を意味するのか分かりません。おそらくそれは言語の壁ですが、言葉で表現するのが難しい場合は、通常はコードで記述することも難しくなります。たぶんあなたはそれについて少し考えなければなりません。そして、それを使用する必要があるその管理者に話すと、ユーザーのフィードバックは常に良いです。 –
ありがとうHans、私の意味は、管理者には高度な機能があるということです。 私はMouse_Click点(x、y)をグラップすることを考えていて、TextBox1 thoの矩形を取得します! – meYnot
- 1. JS特殊マウスボタン
- 2. マウスボタンの位置を知るブール関数
- 3. QListViewがマウスボタンをクリックしました
- 4. WPF DispatcherTimerおよびマウスボタンのクリックタイミングの変更
- 5. どちらのマウスボタンが中央のボタンですか?
- 6. VSコードの中マウスボタンのクリックペーストを有効にするには?
- 7. Gtk/GtkDウィンドウ上のマウスボタンのリリースを検出しますか?
- 8. マウスボタンのオートコンプリートから値が選択されない
- 9. Qtどのマウスボタンが押されたかチェックする方法
- 10. 中マウスボタンがスコープを分散したときの角度Anglejs
- 11. 最大11個のマウスボタンをサポートしていますか?
- 12. C# - ネットワークトラフィックのキャプチャ
- 13. STDINのキャプチャ
- 14. キーストロークのキャプチャ
- 15. "xxxxxxxxxx"のキャプチャ
- 16. キーストロークのキャプチャ
- 17. ジオロケーションのキャプチャ - Phonegap
- 18. Androidソフトキーイベントのキャプチャ
- 19. キャプチャSeekBarの値
- 20. キャプチャはYiiの
- 21. PHP:キャプチャ
- 22. メッセージを投稿するユーザーがマウスボタンをクリックした後
- 23. 右マウスボタンにバインドする方法knockoutJsをクリックしますか?
- 24. WinFormsイベントでマウスボタンをクリックするとどうなりますか?
- 25. ココアプログラミング - マウスボタンを押している間に入った?
- 26. Visual Studio 2008でマウスボタンを割り当てる
- 27. C++のキーストロークのキャプチャ
- 28. キャプチャのstd ::機能
- 29. AndroidカメラのキャプチャFFmpeg
- 30. キャプチャのvar_dump出力
タイトルに「C#」などのプレフィックスを付けないでください。それがタグのためのものです。 –
ジョンさん、ありがとうございました! – meYnot
回答者はあなたがしたいことを理解するのが少し難しいと思っています。少し質問を書いて、あなたが探している機能(エンドユーザの場合)を追加すると、より良い答え。 – dmportella