<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>「TextBoxで右クリックしてもコンテキストメニューが表示されないようにする」へのコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=control%2Ftbnocontextmenu.html</link>
<description>「TextBoxで右クリックしてもコンテキストメニューが表示されないようにする」に投稿されたコメントの一覧</description>
<language>ja</language>
<image>
<url>https://dobon.net/banner/dbs1.gif</url>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=control%2Ftbnocontextmenu.html</link>
<title>「TextBoxで右クリックしてもコンテキストメニューが表示されないようにする」へのコメント</title>
<width>88</width>
<height>31</height>
</image>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=control%2Ftbnocontextmenu.html#11</link>
<description><![CDATA[CAT-chyさんから教えていただいた問題と解決法を独立した別の記事として紹介させていただくことにしました。r-y-oさんと大平さんのコメントも参考にさせていただきました。ありがとうございました。<br><br>http://dobon.net/vb/dotnet/control/tbpreventdefaultmenu.html]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#10</link>
<description><![CDATA[本編、[ CAT-chy ]さん、[ r-y-o ]さんの情報をもとに、<br>コンテキストメニューを表示しないテキストボックスをクラス化しました。<br>（デザイナーに生成されたファイルと、名前空間は省略します。）<br><br><br>using System.Windows.Forms;<br><br>public partial class コンテキストメニュー無しTextBox : TextBox<br>{<br>    public コンテキストメニュー無しTextBox()<br>    {<br>        InitializeComponent();<br>        ContextMenu = new ContextMenu();<br>    }<br><br>    protected override void OnMouseMove( MouseEventArgs e )<br>    {<br>        if ( ( e.Button &amp; MouseButtons.Right ) == MouseButtons.Right )<br>        {<br>            if ( !ClientRectangle.Contains( e.Location ) )<br>            {<br>                Capture = false;<br>            }<br>        }<br><br>        base.OnMouseMove( e );<br>    }<br>}]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#9</link>
<description><![CDATA[評価：良い<br>大変助かります。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#7</link>
<description><![CDATA[CAT-chyさんの方法を参考にWinProcを使用しない方法を考えてみました。<br><br>protected override void OnMouseMove(MouseEventArgs e) {<br>  if (e.Button == MouseButtons.Right) {<br>    if (e.X &lt; 0 || e.Y &lt; 0 || ClientSize.Width &gt;= e.X || ClientSize.Height &gt;= e.Y) {<br>      Capture = false;<br>    }<br>  }<br><br>  base.OnMouseMove(e);<br>}]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#6</link>
<description><![CDATA[微妙にバグを含んでしましたので、訂正。<br>if (m.Msg == WM_MOUSEMOVE &amp;&amp; (m.WParam.ToInt32() &amp; MK_RBUTTON) != 0) {<br>　short x = (short)(m.LParam.ToInt64() &amp; 0xffff);<br>　short y = (short)((m.LParam.ToInt64() &gt;&gt; 16) &amp; 0xffff);<br>　if (x &lt; 0 || y &lt; 0 || this.ClientSize.Width &lt;= x || this.ClientSize.Height &lt;= y) ReleaseCapture();<br>}]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#5</link>
<description><![CDATA[領域外での右ボタンupでのデフォルトのコンテキストメニュー表示を以下の方法で防いでみました。<br>  [System.Runtime.InteropServices.DllImport(&quot;USER32.DLL&quot;， EntryPoint=&quot;ReleaseCapture&quot;)]<br>  public static extern void ReleaseCapture();<br><br>  private const int WM_MOUSEMOVE = 0x0200;<br>  private const int MK_RBUTTON = 0x0002;<br><br>  protected override void WndProc(ref Message m) {<br>    if (m.Msg == WM_MOUSEMOVE &amp;&amp; m.WParam.ToInt32() == MK_RBUTTON) {<br>      short x = (short)(m.LParam.ToInt64() &amp; 0xffff);<br>      short y = (short)((m.LParam.ToInt64() &gt;&gt; 16) &amp; 0xffff);<br>      if (x &lt; 0 || y &lt; 0 || (this.Width-4) &lt;= x || (this.Height-4) &lt;= y) ReleaseCapture();<br>    }<br><br>    base.WndProc(ref m);<br>  }]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#4</link>
<description><![CDATA[評価：良い<br>探していた情報があって助かりました。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#3</link>
<description><![CDATA[評価：良い<br>APIを使用しないといけないか悩んでいました。<br>メッセージ送信とか使用せずに、簡単に解決できるのを知りました。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#2</link>
<description><![CDATA[評価：良い<br>考えてみれば、何てことも無いですが、・・・・<br>簡単なことだけど、悩むところです。<br>ありがとうございました。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>https://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=control%2Ftbnocontextmenu.html#1</link>
<description><![CDATA[右クリックアップをTextBox外で行うとデフォのメニューが出てしまいます。<br>MouseUpで<br>if(e.Button == MouseButtons.Right)<br>    textBox1.Undo();<br>MouseDownで<br>if(e.Button == MouseButtons.Right)<br>    textBox1.ClearUndo();<br>これで強引ですが、貼り付け無効には出来ます。]]></description>
</item>
</channel>
</rss>