[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/03 14:11 / Filesize : 215 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part58



1 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:35:10 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ 
C#, C♯, C#相談室 Part55 (実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>1-5くらい

152 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:17:13 ]
>>150
お前が.NETスレ立てて頑張ってくれ

153 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:17:14 ]
底辺同士仲良くすればいいのにね

154 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:18:45 ]
ですね

155 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:19:26 ]
.NETスレがあっても事実上C#スレになっちゃうからな
VBスレ以外の.NET関連のスレでVBのコードはほとんど見かけない

156 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:21:39 ]
C#でコード例とか書いたら、「C#わからないのでVBのコードください」とか言うやつが
出てくるだけ。

なので、言語ごとでいいんじゃね?

157 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:24:49 ]
コンバートしろって言って置けばいいんじゃね?

コンバートしてくれるサイト
www.developerfusion.com/tools/convert/vb-to-csharp/

158 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:25:06 ]
俺VB.NETほとんど知らないけど、MSDNのサンプル位なら余裕で読めるな
.NETFrameworkを使う以上、そんなに差は出ないんで

159 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:26:24 ]
>>157
ところが「変換したものをコピペしてみましたが動きません」とか言い出すんだ

160 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:27:27 ]
面倒だからC#で実行ファイル作って、VBソースとして復元しろw



161 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:31:24 ]
>>156
C#とVBってキーワードが違うだけなのに。それはOOPが理解できてないってことなんじゃ?

162 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:32:49 ]
.net必須

アレフガルドを散歩しよう
www1.axfc.net/uploader/Sc/so/97427.zip
tsushima.2ch.at/s/news2ch54394.png

元のマップ
xb_lim.at.infoseek.co.jp/dq/1zentai.png

163 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:39:40 ]
VBにしかないの無かったっけ
Myなんたら

それはそれとしてRichTextBoxで挿入/上書きモードが解る方法ないですか

164 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:52:51 ]
>>163
ない キーイベントで自分で管理する

165 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:59:44 ]
>>163
名前付き引数とか省略可能な引数とか。
COMを呼ぶときに便利だよ。
C#からExcelを呼ぶときにMissingを死ぬほど埋めるのはさすがにしんどい。

166 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:04:46 ]
最近プログラム初めたのですが(C#)
今開発中のソースコードを見せて
おっ これは! とか
こいつw とか
わいわいできるスレッドはありますか?


167 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:07:59 ]
>>165
名前付き引数と省略可パラメータはC#4.0で追加
なんかもうCOMはラッパー使わずに全部dynamicでやってもいいんじゃないかとも思うけどな
Silverlight4なんかそうなってる

168 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:34:14 ]
>>167
あと、インテリセンスだけは効いてくれるとありがたいんだけどなぁ。


169 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:35:10 ]
>>167
IDispatchはともかくIUnknownはどうすんのよ

170 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:36:44 ]
dynamicではキャストも動的にバインドされるから問題ない



171 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:50:31 ]
>>163
public partial class Form1 : Form {
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte[] lpKeyState);
static bool isOverType() {
byte[] barr = new byte[256];
const int VK_INSERT = 0x2D;
GetKeyboardState(barr);
return 0 == (barr[VK_INSERT] & 0x01);
}

public Form1() {
InitializeComponent();
setTextMode();
}
void setTextMode() {
toolStripStatusLabel1.Text = isOverType() ? "Ins" : "Ovr";
}
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) {
setTextMode();
}
}

こんな感じでいいらしい。

172 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 15:01:43 ]
>>171
Ins状態はコントロールごとに独立してるから、キーのトグル状態調べるだけじゃダメ

173 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 15:28:32 ]
VS(2008)でボタンを作成後、Visibleプロパティをfalseにすれば当然「表示されなくなる」が
その状態で他の要素から"Perform.Click"しても実行されないのは仕様?
Visibleは可視/不可視の設定だけだと思うんだが、Enableみたいな動き方をしてちょっと困ってる。

174 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:05:43 ]
はは、画面上に存在してない物をどうやってクリックするって言うんだい

175 名前:173 mailto:sage [2010/03/28(日) 16:21:48 ]
>>174
プログラムの内部的には有効だから動くんじゃないかと思っていたんだが、動かないのか。
ラベルなんかはVisibleをfalseにしても使えるんで、当然ボタンも使えると思っていた。

176 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:24:35 ]
ラベルの何のイベントだよ

177 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:25:10 ]
>>172
とりあえずは動いてるんだが(テストアプリだけに独立してIns/Ovr状態が働いて
いるというレベルで)、正しくはどうやるの?

178 名前:173 mailto:sage [2010/03/28(日) 16:29:35 ]
>>176
ただ文字列を格納するだけ。
まあでも出来ないのが仕様と分かったんでd。

179 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:33:02 ]
>>178
ラベルの格納とイベントはちげーだろw
表示されてないってことはイベント拾うための処理がスルーされるってことだぞw

180 名前:173 mailto:sage [2010/03/28(日) 16:35:37 ]
>>179
dd。
了解(`・ω・´)



181 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:36:04 ]
>>177
>>164
IsOverwriteModeがあるMaskedTextBoxのOnKeyDownでもそう実装してる

RichTextBox二つ並べて、片方でInsキー押して上書きモードにしても
もう片方のRichTextBoxの方は挿入モードのままでしょ
この状態でどっちにフォーカスがあろうがGetKeyboardStateで取れるInsキーのトグル状態は同じ

182 名前:177 mailto:sage [2010/03/28(日) 17:02:52 ]
おー、駄目だわ。メンドウだな。

183 名前:177 mailto:sage [2010/03/28(日) 17:30:34 ]
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte[] lpKeyState);
static bool isOverType() {
byte[] barr = new byte[256];
const int VK_INSERT = 0x2D;
GetKeyboardState(barr);
return 0 != (barr[VK_INSERT] & 0x01);
}
void setTextMode(ToolStripStatusLabel lab) {
lab.Text = isOverType() ? "Ovr" : "Ins";
}
bool OverType1 = false;
bool OverType2 = false;
public Form1() {
InitializeComponent();
toolStripStatusLabel1.Text = OverType1 ? "Ovr" : "Ins";
toolStripStatusLabel2.Text = OverType2 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel3);
setTextMode(toolStripStatusLabel4);
}
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Insert) OverType1 = !OverType1;
toolStripStatusLabel1.Text = OverType1 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel3);
}
private void richTextBox2_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Insert) OverType2 = !OverType2;
toolStripStatusLabel2.Text = OverType2 ? "Ovr" : "Ins";
setTextMode(toolStripStatusLabel4);
}
スレの肥やしに、試してみた比較コードは貼っておこう。自分で管理せにゃならんのか。

184 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 18:03:08 ]
Visible=Falseだとイベントも向こうになるよ。

185 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:16:40 ]
(`・ω・´)

186 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:04:39 ]
ファイルシステムを単体テストするときのために、Fileクラスなどを置き換えるクラス作ってる人いる?
StrategyパターンでFileクラスとテスト用のFileクラスを切り替えられるようなやつ

ちょっと必要になったから同じようなことしている人がいたら意見聴きたい

187 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:06:36 ]
ファイルシステムなんて作ろうとも思わない。

188 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:07:26 ]
なんでStrategy?
IFileでいいじゃん

189 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:12:51 ]
Fileは無理じゃないかな、staticだし。mscorlib.dll 内だし。
プロキシかませてやることを抽象化しておいて、それを置き換えるくらいしか。
どのみちファイルシステムの単体テストにはなんないけど。

190 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:19:32 ]
>>187,189
説明不足でした
ファイルシステムを使うシステムの単体テストです

>>188
インターフェイスだとFileクラスに適用できないので



191 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:20:13 ]
こういうやつです

public class Client
{
public FileBase FileBase { get; set; }
public void DeleteXXXFiles()
{
...
FileBase.Delete("aaa.txt");
...
}

[TestFixture]
public class ClientTest
{
[Test]
public void DeleteXXXFilesTest()
{
var c = new Clinet();
var testfile = new TestFile();
c.FileBase = testfile;

c.DeleteXXXFiles();

Assert.IsFalse(testfile.Files.Contains("aaa.txt"));
}
}

192 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:09:34 ]
こういうのMockっていうみたいだな。英語の情報ばっかで読めない・・・
定番のファイルシステムモックとかないんかな

193 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:36:39 ]
単体テストのときには実際にファイル作るからそんなのいらない

194 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:40:59 ]
ばかばっか

195 名前:192 mailto:sage [2010/03/29(月) 02:01:26 ]
>>194は俺ではないです。念のため

196 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 08:54:39 ]
ファイルぐらいだったら作っちゃった方が早いかもねえ。
ネットワークとかDBだったらモックあるならモック使うけど。

197 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:47:20 ]
Windows7用APICodePack使ってDirect2Dためしてみた。
直径80ピクセルぐらいのEllipseを、あらかじめ用意していたSolidBrushからランダムに切り替えながら3000個描画するのに130ミリセクぐらいなんだがこんなもん?
マシンはCore2Duo9300、グラフィックは965Expressのオンボード。
同じような内容をGDI+でやるとダブルバッファーなしで9秒ぐらいだった。ダブルバッファーありだと40ミリせく。

198 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:54:55 ]
C#からDirect2D使う意味がわからん
C++向けのちょっと低レベルなWPFだろあれ

199 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:18:09 ]
>>197
よくわからんけど.netでグラフィックって考えてるならやねうらお氏のところが
確か.net時代のゲームつくりってのでライブラリ公開しててそれが標準コントロールに
描画してた記憶があるのであれでみてきてみなよ

200 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:50:10 ]
>>199
それ触ったことあるけど大した機能もない割に癖が強くて気持ち悪い
コントロールに直接描画するだけならDirect3Dで普通にできる



201 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:54:12 ]
C++でしか触ったことないけどhWndからサーフェイス取って描画できるから
C#でできないってことはないわ

202 名前:197 mailto:sage [2010/03/29(月) 19:19:02 ]
説明足らずですいません。
試したかったことはVista以降で動くはずのDirect2Dでの高速描画のテストです。
GDI+よりも高速にかけると色々と都合が良かった(既存のライブラリの以降に)のでどんなもんかと。
自分も詳しく把握してないですが,要はDirect3Dサーフェスを使ってかけるアクセラレーションの聞く2D描画APIという認識でいます。
WPFとかぶるところもありますが、Direct2Dはよりプリミティブな描画APIだと思っています。
テキスト描画とかからむとNativeAPIもしくはそのラッパーでゴニョゴニョできれば都合いいかとCodePackいじってみた次第です。

203 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 19:52:57 ]
vista以降はGUIの変更の関係で従来の2D部分はソフトウェアレンダリングじゃなかったっけ?
Direct2Dの深部がどうなってるか知らんけど

204 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 19:54:54 ]
ソース
www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_003.shtml

205 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:06:51 ]
Direct2DってWPFとは違って即時モードで描画するんだっけ
さすがに図形を毎回計算し直したりはしてないだろうけど
3000回テクスチャ切り替えてるとしたら結構なコストなんじゃないの

206 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:08:27 ]
>>205
描画命令を発行してもプログラム側でタイミングを見計らってバッファ切替するなら効率もいいけど
windowsのGUIのように動かれると効率はよくないな

207 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:18:00 ]
WPFでは宣言的に描画命令出してあとはお任せだから
あまり動かない要素を自動的にビットマップでキャッシュしたりするよ
たぶん現状WPFの方が遅いんだろうけど仕組み的にはWPFの方がUIには適してるんだろうな

208 名前:197 mailto:sage [2010/03/29(月) 21:40:01 ]
>205
MSのサンプルだがInvalidate時にDirect2Dもろもろをラップしたクラスから次のメソッドに飛んでくる。
private void RenderScene(){
CreateDeviceResources();
if (renderTarget.IsOccluded)
return;
renderTarget.BeginDraw();
renderTarget.Clear(WhiteBackgroundColor);
foreach (DrawingShape shape in drawingShapes)
shape.Draw(renderTarget);
renderTarget.EndDraw();
}
shapeの中は
protected internal override void Draw(RenderTarget renderTarget){
if (_fill)
renderTarget.FillRectangle(_rect, _parent.brushes[_selectedBrushIndex]);
else
renderTarget.DrawRectangle(_rect, _parent.brushes[_selectedBrushIndex], _strokeWidth);
}
こんな感じ。 renderTarget.FillRectangleの中まで見てない。これもC++/CLIで実装されたラップクラス。
shapeまわりとかあくまでサンプルなのでたぶん使い易い分かなり不効率なことやってそうだけど・・・

209 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:18:07 ]
単なる丸投げラッパーだろ
たぶんC++で同じようなの書いてもほとんど速度は変わらないと思うよ

210 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:31:42 ]
Form1からForm2のウィンドウを生成するとウィンドウ自体は
アクティブになるのですが、Form2上にDockさせたWebBrowser
コントロールにフォーカスが当たっておらず、1回クリックしないと
マウスホイールに反応してくれません。
Form2.Active()やForm2.Focus()あるいはWebBrowser.Focus()
では制御出来ないのでしょうか?



211 名前:デフォルトの名無しさん [2010/03/30(火) 12:09:55 ]
C#は糞
pc12.2ch.net/test/read.cgi/tech/1246520657/

212 名前:163 mailto:sage [2010/03/30(火) 12:36:03 ]
亀だけど色々ありがとう
しかしTextBox系はあちこちウンコだのう
かと言って巷のコンポーネントで日本語完全対応のは無いっぽいし
困ったもんだ

213 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:36:11 ]
>>210
なんのこっちゃと思ってたがこういうことか

webBrowserの場合、マウスをクリックするとホイールが効いてスクロールするってことは
その中のDocumentにフォーカスを当てないとだめだよ
サンプルコード
ideone.com/MRJeDOwz

でこのDocumentなんだけどNavigatedイベントもしくはDocumentCompletedイベント
発生後じゃないと無いので下手な場所でフォーカス当てるとこけるから

214 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:39:56 ]
>>213
昔のExcelでもあったよな、前面にしただけじゃダメでクリックしないとホイール効かないっての
それに対処するフリーウェアあったけど・・・今でも配布してるんだろうかってスレチだな

215 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:42:48 ]
>>214
webBrowserは便利そうでめんどくさいんだよな
使いこなせると強力なレンダリングエンジンの恩恵受けれるんだが

216 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:49:47 ]
GraphicsPathのIsOutlineVisibleとIsVisibleの違いが分からない
引数違うだけ?

217 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:01:09 ]
>>213
ありがとうございます。質問の仕方が下手でした…。
そのコード通りに実装してフォーカスが当たるようになりました。
あと自分で試したものでは下記のコードでも同様に動きました。

private void Form2_Activated(object sender, EventArgs e)
{
this.ActiveControl = WebBrowser;
}

218 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 22:13:07 ]
TextBoxを半透明にしたいのですが調べてもいまいちわかりません・・・。

219 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 22:14:29 ]
>>218
無理

220 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 22:15:26 ]
できません
見た目を気にするならきっぱり諦めてWPFに移行しましょう



221 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 22:21:40 ]
無理ってことは無いけど面倒

222 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 22:25:23 ]
専用に枠のない子ウィンドウを開くようなアホな方法はないこともないけど諦めた方がいい

223 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 08:37:06 ]
フォームがアクティブでない時にキーが押されると
フォームの処理を中断するようにしたいのですが
どのようにすればいいでしょうか、ご教授宜しくお願いします

224 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 13:51:41 ]
つttp://hongliang.seesaa.net/article/7539988.html

225 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:20:09 ]
.NETがない環境でも動かしたい、見た目もほどほどには気にしたいって需要もあるわけで
不可能でなければアホな方法もアリだろう

226 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:16:13 ]
インフラ用のTextBoxBase#BackGroundImageに背景画像を設定したら、どうなるんだろ。
試してみる気もしないが、これでナンチャッテ半透明TextBoxにならんかな?

227 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:23:27 ]
.NETなしでC#動かしたかったらSilverlightくらいしかないな
ちなみにSilverlightなら全くコード書かずにできる

228 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:57:14 ]
まだ半透明がどうのとか言ってるのか。

そういう人はそもそもその「半透明」が何を意味してるのか、
恐らくちゃんと突き詰めて考えてないだろ。

透けて見えるようにしたいのはコンテナ(フォーム)の奥のコントロール(ウィンドウ)?
それって透けてるのはTextBoxじゃなくてコンテナだろ。

TextBoxを半透明にしたってコンテナが透けて見えるだけだが、嬉しいかそんなの。

229 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 00:19:31 ]
オサレな外観にしたいんじゃない?

230 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 00:22:17 ]
WPF使わないと無理じゃないかな
外のコントロールだとオーナードロー駆使すればわりとなんとかなるが
textboxだけはかなり深部いじってできるかどうか・・・?ってレベルのような



231 名前:223 mailto:sage [2010/04/02(金) 14:20:40 ]
223です。
224の方返信ありがとうございます。
参考にさせていただきます。

「TextBoxを透明に」についてですが
このようなのはどうでしょうか?
ttp://www1.axfc.net/uploader/Sc/so/99375.zip&key=C#

232 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 14:26:20 ]
半透明って言ってるだろ

233 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:50:15 ]
Windows使ってて.NETが無い環境ってどれだけあるんだろうな
キチガイとしか思えない

234 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 17:17:58 ]
>>228
そんなに貧困な脳みそを自慢するなよw
そのコンテナがピクチャボックスだったら嬉しい事もあるだろ

235 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 19:56:05 ]
B地区がみえたりしたらそこに文字入力したくなくなるけどね

236 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 11:26:11 ]
俺の金曜日の最後の書き込みからだれも書き込んでないことに泣いた・・・

237 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 11:28:46 ]
規制食らったからねえ
あと専門板住人減ってるからあんまり詰まんないことして人いなくなるようなことしないでおこうよw

238 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 11:09:25 ]
静かですな〜

こんなところへ質問しないと進まなかった人たちは
がんばってぐぐって解決してるのかな?

239 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 12:44:30 ]
俺もそうだけどここにいるのはほとんどが趣味プログラマだろ
別に分からなきゃ分からないで困るわけじゃない

240 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 18:01:57 ]
>>238
質問が無いのは大規模規制があったから。



241 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 18:23:00 ]
俺が規制されてないのに大規模規制とか笑わせる

242 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 19:16:45 ]
知らんがな

243 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 21:53:08 ]
>>240
どうみても>>238はそれをわかって書いてるようにみえるが?

244 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 13:56:38 ]
ComboBoxでドロップダウンリストをクリックすると、そのアイテムが一番上に来るようにしたい
DataSourceにはList<T>をバインドし、SelectedIndexChanged内でリストをSuspendBinding() & ResumeBinding()して強制更新
これが上手く行かない
ドロップダウンから選択すると、ドロップダウン内が真っ白になる
それでもリスト自体は存在するらしく、クリックするとリスト自体は更新される
この問題を解決する何かいい方法はないだろうか

ちなみにList<T>をBindingList<T>にすると無限ループする
SelectedIndexChanged内でリスト変更してるから当たり前っちゃ当たり前だけど

245 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:21:08 ]
単純にChangedイベント内部でフラグチェックで出来ない?

bool changedEnabled = true;

Changedイベント
{
if( changedEnabled )
{
changedEnabled = false;
煮るなり焼くなり
changedEnabled = true;
}
}

246 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:22:07 ]
ああごめんちゃんと読んでなかった

247 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:23:25 ]
直接張るならhtmlエンコードしてくれ
そうじゃないなら外部のコード貼れるところ使ってくれ

248 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:24:27 ]
あれほどサンプルソースさらせと・・・

249 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:29:43 ]
>>244
ピンポイントで対応できる少数を待つか、自分がはまった箇所を再現できる適当な
ソースを晒してコードを見て対策考えれる多くの人から回答待つか

どちらか選べ

250 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 16:29:47 ]
これっぽちのソース我慢しろよww



251 名前:244 mailto:sage [2010/04/08(木) 16:36:58 ]
自己解決
リストデータの中に何時の間にかnullが紛れてて、取り除いたら動いた
お騒がせしました
詫びがてらコードを晒しとく
この手の需要は微妙にあるような気がしないでもないようなあるような

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
  ComboBox cb = (ComboBox)sender;
  int selno=cb.SelectedIndex == -1) return;

  cb.BindingContext[cb.DataSource].SuspendBinding();
  string selecttext=combodata[selno];
  combodata.RemoveAt(selno);
  combodata.Insert(0,selecttext);
  cb.BindingContext[cb.DataSource].ResumeBinding();
 }

252 名前:244 mailto:sage [2010/04/08(木) 16:39:37 ]
ミス
×int selno=cb.SelectedIndex == -1) return;
○int selno=cb.SelectedIndex;
 if(selno==-1) return;

ハンパにコピペするもんじゃないな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<215KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef