問題タブ [xojo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xojo - リストボックスのセルの背景色を変更する
デスクトップアプリケーションで作業していて、おそらくばかげた問題を抱えていて、まだ私を怒らせています。
動的ソースから行を取得するリストボックスがあります。
そのセルの基になるデータが特定の条件に変更された場合、コントロール内の特定のセルの前色を変更しようとしています。
条件のチェックが開始される前に、コントロールも 1 回描画されます。つまり、すべてのセルが同じ (白の) 前色で塗りつぶされます。
また、このリストボックスはキャンバス内にあり、そのキャンバスはウィンドウ コントロール内にあります。
このコードは、条件とリストボックス内のすべての行をチェックします。
WidgetsDictionary には、チェックする必要がある条件が含まれています。
実行後にCellTagsをチェックすると、本来あるべき場所に正しく設定されていることがわかります。
今、そのコードの後に私が呼び出す場合
注: Refresh が最適ではないことはわかっていますが、できるだけ早く起動する必要があります
ListBox の CellBackgroundPaint イベントにジャンプするコードが表示されます
そこに私はこれを持っています
繰り返しますが、このコードが正しく実行されていることがわかります。
したがって、リストが新しい色の正しいセルで再描画されることを期待しています。
しかし、何も変わりません。更新のたびに CellBackgroundPaint イベントが発生するのがわかりますが、表示される最終結果は常にデフォルト (白) のセルです。
順番に電話してみた
- 特定のセルの InvalidateCell
- Refresh ではなく、Listbox 全体で無効化します (わからないため)。
- 含まれている Canvas を更新する
コードの最初のブロックの後、役に立たない。
だから今、私は次に何をしようか途方に暮れています。
編集
イベントハンドラーを
行と 3 番目の列全体が異なる色で交互に表示されます。
したがって、最初に表示された後に再描画しようとしているという事実は、問題がある場所にあると思います。
xojo - これらの拡張 ASCII コードを置き換える方法は?
.txt ファイルを開いていますが、それらを Xojo にロードすると、これらの (’ , â€ک) のような奇妙な文字が表示されます。
DefineEncoding と ConvertEncoding を試しましたが、まだ機能していないようです。
output.text = output.text.DefineEncoding(Encodings.WindowsANSI)
output.text = output.text.ConvertEncoding(Encodings.UTF8)