TextBox BackColorが変更されていません -- c# フィールド と colors フィールド と textbox フィールド 関連 問題

Textbox BackColor not changing












1
vote

問題

日本語

誰かがこのコードが機能していない理由を説明できますか?

<事前> <コード> TypeError: ("'numpy.float64' object is not callable", 'occurred at index a') 16

数回働きましたが、ほとんどは機能しません。毎回「IF」部分を取り除くと、「this.backcolor = color.ayellow.ayellow」を他のコードに置き換えると機能します。 何が間違っているのかを伝えることができるならば、非常に感謝します。

英語

Can anyone explain why this code is not working?

 protected override void OnMouseDoubleClick(MouseEventArgs e)         {             if (this.BackColor == Color.White)             {                 this.BackColor = Color.Yellow;              }             else             {                 this.BackColor = Color.White;             }                 base.OnMouseDoubleClick(e);         } 

It worked few times, but mostly does not work. When i remove the "if" part it works every time, and when i replace "this.BackColor = Color.Yellow" with some other code it also works. Would be very grateful if some could tell what am i doing wrong.

</div
        
 
 

回答リスト

3
 
vote
vote
ベストアンサー
 

最初のダブルクリックでのみ動作しません(それは動作しますが、あなたがおそらく予想されるように黄色くない色に色を白に設定されます)。<コード> == 演算子は色の名前とargbプロパティを比較するだけでなく、 ARGBプロパティ。最初のDoubleClick ARGB値は同じ 99887761 ですが、nameは、最初の BackColor プロパティでは "Window"とColor.Whiteが名前の値を持つためです。プロパティ "White"、したがって、それらは同じではありません。あなたは自分自身をデバッガにチェックすることができます。

問題を回避するために、コードを次のように書き換えることができます。

<事前> <コード> protected override void OnMouseDoubleClick(MouseEventArgs e) { //compare ARGB values if (this.BackColor.ToArgb() == Color.White.ToArgb()) { this.BackColor = Color.Yellow; } else { this.BackColor = Color.White; } base.OnMouseDoubleClick(e); }
 

It doesn't work only on first double click (it works but sets the color to White not Yellow as you presumably expect) because == operator compares Name and ARGB properties of the color, not only the ARGB property. Although on first doubleclick ARGB values are the same (ARGB=(255, 255, 255, 255)), names are not because the initial BackColor property has the name "Window" and the Color.White has the value of the Name property "White" and therefore they are not the same. You could check that yourself in debugger.

To avoid the problem you could rewrite your code as follows:

protected override void OnMouseDoubleClick(MouseEventArgs e) {       //compare ARGB values       if (this.BackColor.ToArgb() == Color.White.ToArgb())       {            this.BackColor = Color.Yellow;        }       else       {            this.BackColor = Color.White;       }       base.OnMouseDoubleClick(e); } 
</div
 
 

関連する質問

0  データベースからHTMLフォームにアクセスされるデータをロードする方法  ( How to load data that are accessed from database to html form ) 
getString()メソッドを使用してテーブルからデータにアクセスしようとしていて、データがいくつかの変数に格納されている場合は、送信ボタンをクリックしているときにHTMLフォームにロードする必要があります。どうやって?私を助けてください...... ...

12  Unicode文字はSystem.Windows.Forms.TextBoxに表示されません  ( Unicode characters not showing in system windows forms textbox ) 
これらの文字は、ここでVisualStudioデバッガからそれらをカットアンドペーストしているときに細かく表示されますが、デバッガの両方と、このテキストを表示しようとしているテキストボックスでは、正方形を表示します。 説明 R N流路、3-9 rはその流れが...

0  テキストボックスの日付をMySQL DateTime形式に変換する方法  ( How to convert date in text box to mysql datetime format ) 
PHPにとってはかなり新しいことで、Larry Ullman Bookを読んで基本的なDBサイトを開発してきました。 私は "日付"というテキストフィールドに日付を追加するために、Yui Calendar Pop Up Up Up Up Apper Pick...

1  Windows Phone TextBoxは8進数として入力されます  ( Windows phone textbox input as an octal number ) 
Windows Phone 7のOCTAL番号として入力されたテキストボックスをキャプチャできますか? ...

4  WPFの検証エラーに関するテキストボックス入力をキャンセルする  ( Canceling textbox input on validation error in wpf ) 
検証エラーが発生したときに、 TextBox でユーザー入力をキャンセルする方法を理解しようとしています。ユーザーが無効な文字を入力しようとすると、 TextBox に追加しないでください。 <コード> TextBox が無効な文字を受け入れるのを防ぐために...

0  Microsoft Ajaxクライアントテンプレートベータリリースでは、テキストボックスの値プロパティへのバインドが失敗する  ( Binding to text box value property fails in microsoft ajax client templates beta ) 
次のコードは、テキストボックスの "value"プロパティを文字列 "test"にバインドする必要があります。 代わりに、バインディング式 "{{{test}}"がテキストボックスの内容として解析されていません。 兄弟要素内の結合発現は正しく解析されている。...

0  Arrayへのテキストボックスの値  ( Textbox values to array ) 
私はいくつかのテキストボックスを持っていて、それらをループしたいと思うかどうかを確認し、それらがそうであればそれを配列に入れます。 TextBoxesはtxttext1、txttext2 .... txttext12と呼ばれます。 これが私がこれまでに得た...

0  TextBoxの検証ボンド  ( Textbox validation border ) 
現在、 TextBox ESをアプリケーションでの TextBox ESを表すRED Border を現在持っています。 それはちょうど私に見えない、それは丸みを帯びた角の周りに正方形の境界線を持っていて、ドロップシャドウは間違った色です。 テキストボッ...

17  WPF:onkeydown()WPF TextBoxから派生したコントロール内のスペースキーに呼び出されていません  ( Wpf onkeydown not being called for space key in control derived from wpf text ) 
WPFアプリケーションでは、このようなTextBoxから派生したコントロールがあります。 <事前> <コード> public class SelectableTextBlock : TextBox { protected override void ...

0  TextBoxはクリック可能ではなく編集可能です  ( Textbox not clickable but editable ) 
私は10のテキストボックスを持つ小さいフォームを持っています、私は現在あなたが彼らにタブをタブにしたいと思う方法でそれらを正しいタブの注文に設定しています。テキストボックスを設定する方法があるかどうか疑問に思っているため、タブ付きの場合を除き、編集用に選択でき...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有