1 名前:最凶VB厨房 mailto:sage [2006/08/11(金) 19:40:44 ] [前スレ]VB.NET質問スレ (Part16) pc8.2ch.net/test/read.cgi/tech/1149432480/
52 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 22:17:24 ] だから標準でそんなコントロール付いてないってば
53 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 22:18:18 ] ていうか何故正式名称を出さないんだ?
54 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 22:26:27 ] >>51 マウスポインタをコンポーネントタブの該当コントロールに当てて、 ちょっと待ったら出てくるツールチップに書いてある名称を一言一句 間違いなく書き出すんだ。
55 名前:デフォルトの名無しさん [2006/08/17(木) 00:03:39 ] 本当だ。 付いてない。 家で試したら無かったです。 でも、職場でダウンロードもインストもした記憶がないのですが・・・ サードパーティー製スレに行ってきます。
56 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 00:12:59 ] そんなスレあるの? メーカーに聞けという意味で言ったんだけどw
57 名前:デフォルトの名無しさん [2006/08/17(木) 12:11:14 ] datagridに書き込んだデータをExcelのシートに流し込んでExcelの機能を使って印刷 するソフトを作ったのですが、Datagridの中に特定の文字列が書き込まれているとき、 Excelに流し込む文字列を変更することは出来ないでしょうか? ちょっと分かりにくいのですが、 Datagridにkm3と書き込まれたとき、3をExcelの文字飾り上付きにしたいのです。 (要するにkm3では無く立方キロメートルの単位にしたい) どうやったらいいのかが全く分かりません。 実現可能であれば方法を御教授願います。
58 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 13:26:00 ] >57 ExcelのVBAでやれば済むのでは?
59 名前:デフォルトの名無しさん [2006/08/17(木) 15:05:31 ] >>58 MySQLと連動させているのでVBAでやるのは難しいと思うのです。 作ったアプリでMySQLにデータを入力しつつExcelで作ってある フォーマットに出力という形です。
60 名前:デフォルトの名無しさん [2006/08/17(木) 15:20:17 ] >>59 なんで? VBAからODBC経由でもつながるし。頑張れば.net側からExcelVBAの関数呼べるだろうし。
61 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 16:00:18 ] Excelオブジェクト作れば大体の制御は出来るよね
62 名前:デフォルトの名無しさん [2006/08/17(木) 16:10:13 ] >>60 もう作ったソフトがあるのでそれを改良する方向にしたいのです。 >>61 Excelオブジェクトを作って書き込んでいると思います。 Dim oXL As Excel.Application Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet Dim oRng As Excel.Range って奴ですよね?
63 名前:デフォルトの名無しさん [2006/08/17(木) 16:11:51 ] 書き込むだけじゃなく、VBAの呼び出しも出来ると思うが。 それに、Excel操作の基本は、マクロで記録して、それをぱくるですよ。
64 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 16:40:15 ] VB.NET 2005 ExpressEditionをセットアップ実行中に、 .NET 2.0 日本語Language Pack のインスコ途中で、 文字化けのメッセージで error 1324とかでるのですが、 こいつの原因および対処方法はどうしたらよいでしょうか? あと.NET FrameWork 1.1関係も再セットアップやアンインスコしようとすると 同じエラーが出ます。ボスケテ。
65 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 17:39:33 ] HDDをハンマーで叩き割る。
66 名前:デフォルトの名無しさん [2006/08/17(木) 18:43:12 ] >>63 つまりExcelでVBAを吐かせてそれをプログラムに組み込むって事ですか? (なかなか上手く行かない〜)
67 名前:デフォルトの名無しさん [2006/08/17(木) 18:45:05 ] .NETフレームワーク1.0で動作しているアプリケーションは2.0でも正常に動作するのでしょうか?
68 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:50:09 ] するかもしれないし、しないかもしれない。 でも、だいたいはする。
69 名前:64 mailto:sage [2006/08/17(木) 19:18:55 ] スマン自己解決できた、 AppLocaleの一時ファイル(apploc.tmp)のせいで文字化けしていた。 ・問題点 AppLocaleを使って中国語等のソフトを使用・インストール・アンインストールした後、 日本語のソフトをインストールしようとするとインストール画面が文字化けすることがあります。 Windows Installerを使用するソフトやOfficeセットアップで発生します。 ・原因 AppLocaleの一時ファイル(apploc.tmp)が、Windows Installerに影響を与えているようです。 ・解決方法 (ファイルを書き換え、読み取り専用にする) 1:メモ帳で「c:\windows\apppatch」にあるapploc.tmpを指定して開きます。 ファイルの種類を「すべてのファイル」にしないと見えませんから注意してください。 2:メモ帳で開くと「・・ 」のようなものが見えますから、これを全部消して、上書き保存してからメモ帳を終了します。 3:「c:\windows\apppatch」にあるapploc.tmpを右クリックして、プロパティを出し、「読み取り専用」にチェックを入れます。これでOKです。
70 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 20:54:53 ] 大きなチラシが必要だな
71 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 23:06:37 ] >>66 よくわかんないけど、今あるExcelファイルにデータはき出すのでないの? なら、普通にthisworkbook.load(だっけか?)でいいのでは?? 新規作成なら、また別のお話で。(でもどのみちVBAかと)
72 名前:66 [2006/08/18(金) 10:16:11 ] >>71 今はVB.net2003で作ったアプリでMySQLとExcelを使ってます。 伝票を作るアプリで、DataGridが配置されています。 そのDataGridに書き込んだデータを定型フォーマットとして作られた Excelのシートに流し込んで印刷というものです。 要はデータ管理はMySQL、印刷のみExcelでそれを操作するために VBでアプリを作ったのですが、DataGridに書き込んだ文字列はその ままExcelに送られて印刷するだけなので体積や回転速度の単位を 表すことが出来ないのです(DataGrid上ではm3やmin-1としか表記 出来ないが、印刷のときこのまま印刷ではなく、この場合の3と-1は 右上に小さく出したい)。 使う単位はm3とmin-1しかないので、Excelにデータを送る直前に 文字列検索を掛けてm3やmin-1とあったときのみこの3と-1を文字飾り 上付きにしてExcelに送りたいのです。
73 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 10:55:39 ] >>72 VB2005+Excel2003でとりあえず動くコンソールアプリのサンプル(多分VB2003でも動くはず) COMの解放とかやってないけどその辺は気にしないように Imports Microsoft.Office.Interop Module Module1 Sub Main() Dim app As Excel.Application = New Excel.Application() Dim wbk As Excel.Workbook = app.Workbooks.Add() Dim wst As Excel.Worksheet = DirectCast(wbk.Worksheets(1), Excel.Worksheet) Dim r1 As Excel.Range = wst.Range("A1") r1.Value = "100m3" r1.Characters(CStr(r1.Value).Length).Font.Superscript = True Dim r2 As Excel.Range = wst.Range("B1") r2.Value = "10min-1" r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True app.Visible = True End Sub End Module
74 名前:72 [2006/08/18(金) 11:39:51 ] >>73 これって r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True の部分で-1を文字飾り上付きにしてると理解したつもりだけど、 DataGridに 5-10kw 20min-1 ってあった場合、5-10kwの部分にある-1も小さくなりますか?
75 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 11:43:01 ] ウボァ('A`)
76 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 11:46:00 ] >>74 サンプルをアレンジすることなくそのまま使う気か? 自分でデバッグする気もないのか?
77 名前:73 mailto:sage [2006/08/18(金) 11:55:39 ] >>74 セルの文字列の右から2文字を上付きにするというコードです。 DataGridからExcelにどうやって編集してるか分からないので あなたの質問には答えられません。
78 名前:74 [2006/08/18(金) 12:12:25 ] >>76 いや どうやってmin-1とほかの-1を区別しようか考え中です。 今のところは 1、min-1をReplaceで絶対使わないであろう文字列(仮にX)にする 2、-1をReplaceで絶対使わないであろう文字列(仮にY)にする 3、XをReplaceでmin-1に戻す 4、-1をSuperscriptで小さくする 5、YをReplaceで-1に戻す でいいのかなと考えてるところです。 >>77 右から2文字を上付きにするコードとありますがその2文字を指定している 部分が見当たらない(上手く探せないだけだと思いますが)ので考えたのです。 単位が出るのは確実に右端なのでこのままで良いと思いますが、折角なので 色々試してみようかなと思います。
79 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 12:16:18 ] >>78 > でいいのかなと考えてるところです。 なら>>74 みたいなことまで聞くなよ('A`)
80 名前:78 [2006/08/18(金) 12:23:40 ] >>79 脊椎反射で書き込んだ。 今は反省している。 てかその顔いいな。 私は好きです。>('A`)
81 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 12:26:50 ] >右から2文字を上付きにするコードとありますがその2文字を指定している >部分が見当たらない ウボァ('A`)
82 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 12:27:00 ] システム屋には向かん性質だな。 転職考えなよ。
83 名前:デフォルトの名無しさん [2006/08/18(金) 14:03:20 ] r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True の.Length - 1← この-1はmin-1の-1と勘違いしていた。 絶対にmin-1は右端だと思っていたら 10min-1 200V (40min-1) とかいろんなパターンを見つけちゃったのでこれから min-1の位置を正確に割り出す方法を考えます。 みんなサンクス。
84 名前:デフォルトの名無しさん [2006/08/18(金) 18:51:28 ] Label1とLabel2に タイマーを使った乱数のスロットの値aとbを表示するプログラムを作ったのですが Label1とLabel2に表示された値が同じ(a=b)だった時に、また自動的に選び直すようにしたいのに Do until(a<>b)文にInt関数を挟んでも、 それらをIf(a=b)文で挟んでも、選び直してくれません。 タイマーのスタートとストップをInt関数のかわりに二段並べて記述しても、当然の事ながらうまくいきませんでした。 どうすれば良いのかどうかお知恵をお貸し下さい。
85 名前:デフォルトの名無しさん [2006/08/18(金) 19:11:40 ] >>84 そういうエスパー向きの質問はムーにでも投稿しろよ。 誰がそんな文章読んで理解できるんだよアホか
86 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 19:56:08 ] >>84 コードを全部貼れ。 話はそれからだ。
87 名前:デフォルトの名無しさん [2006/08/18(金) 21:44:05 ] 想像されるコード If(a=b)Then Do Until (a<>b) Int() Timer1.Start Timer1.Stop Loop EndIf
88 名前:84 [2006/08/19(土) 05:34:58 ] >85>86 ドコで聞けば良いでしょうか? >87 そうなんです! Label1=Int(ランダム) Label2=Int(ランダム) もしくは Timer1=true Timer2=true Timer1=false Timer2=false のどちらかをDo until文の中に記述したんです。 どなたか、助けて下さい!!
89 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 07:35:14 ] >>88 ヒント : Do 〜 Loop Until(While)
90 名前:88 mailto:sage [2006/08/19(土) 09:31:23 ] >89 ありがとうございます! 来週始めに学校に行った時に試してみます。
91 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 12:31:53 ] VB.net Express Edition で発行した際のインストール先について教えてください。 インストール環境 XP .NetFramework2.0 1)発行で作成したsetup.exeでXPのマシンにインストールする場合 インストール先はユーザーから選択することはできないのでしょうか? (インストールしたユーザーのMyDocuments以下のLocal Settings\Apps\2.0\に作成されます) インストール時にユーザーがフォルダを選択できるのがベストです。 2)XPでAdministrator権限のユーザーがインストールした場合でも そのユーザーしか使用できません。他に何か設定する必要がありますか? VB.netでの開発が初で面食らっております。なにとぞよろしくです。
92 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 13:02:39 ] >>91 ClickOnceとはそういうもの。 普通のセットアップが作りたければStandard以上が必要。
93 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 13:15:06 ] >>92 なるほど、そうでしたか。 早速の回答どうもありがとうございました。
94 名前:デフォルトの名無しさん [2006/08/21(月) 13:06:44 ] VB.NET2005で質問です DayOfWeekで曜日の番号を取得した後 それを日本語名の曜日名に変換するにはどうすればいいでしょうか? だyOfWeekの結果=0 の場合 ”日” または ”日曜日” を取得したいのです。 日付から曜日は検索しても出てくるのですが しつもんのは内容の見受けられませんでした。 ご存知の方よろしくお願いいたします。
95 名前:デフォルトの名無しさん [2006/08/21(月) 13:10:23 ] 自作汁
96 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 13:22:32 ] >>94 enum DayOfWeekJP { 日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日 }
97 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 13:36:39 ] >>94 For d As DayOfWeek = DayOfWeek.Sunday To DayOfWeek.Saturday Console.WriteLine(System.Globalization.DateTimeFormatInfo.CurrentInfo.GetDayName(d)) Next
98 名前:97 mailto:sage [2006/08/21(月) 13:48:11 ] 短い方が欲しければGetAbbreviatedDayName(d)
99 名前:84 [2006/08/21(月) 14:09:52 ] 以前に>84で質問を致しまして、このスレで教えていただいた方法を試してはみたのですが、なかなかうまくいかないので、どなたか助けていただけないでしょうか…? 以下に、参照用としてコードを記入しておきます。 Timer1_Tick Label2.Text = Int((52 * Rnd()) + 1) Label3.Text = Int((52 * Rnd()) + 1) Button1.Click Timer1.Enabled = True Button2_Click Timer1.Enabled = False a = Val(Label2.Text) b = Val(Label3.Text) Do Label2.Text = Int((52 * Rnd()) + 1) Label3.Text = Int((52 * Rnd()) + 1) Loop Until a <> b
100 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 14:18:40 ] >>99 すまんが、何がやりたいのかもっとまとめてくれないか? 1、Button1でタイマースタート。乱数表示開始。 2、Button2でタイマーストップ。表示されている乱数をa,bに代入。 3、‥‥ みたいな感じで、箇条書き&時系列に沿って書き出してみてくれ。
101 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 14:31:37 ] >>99 Button2_Click Timer1.Enabled = False Do Until Label2.Text <> Label3.Text Label2.Text = Int((52 * Rnd()) + 1) 'こっちはいらない気もする Label3.Text = Int((52 * Rnd()) + 1) Loop でいいんじゃねえの?
102 名前:デフォルトの名無しさん [2006/08/21(月) 14:43:29 ] >>96 トンクス! まさにこれが欲しかった 開始番号の都合で1ほど数値をずらさないといけないけど問題ないようです。 DateTimeとは違ってこっちにあるのか・・・・・ ありがとうございました!
103 名前:97 mailto:sage [2006/08/21(月) 14:48:20 ] >>102 え、そっちかよw
104 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 15:06:16 ] ワロタw
105 名前:デフォルトの名無しさん [2006/08/21(月) 15:44:56 ] >>103 質問が悪かったと思うとです。 System.Globalization.DateTimeFormatInfo.CurrentInfo.GetDayName() ↑これなら基本的にある日付からDayOfWeekで取れる番号(または、範囲内の番号)で処理できるじゃないですか? 本来 日付型.String("ddd")とかでも取れるんですが、条件的に日付だけではなく曜日番号からも取得したかったんです。 で曜日の取得名もフォーマットを変更すれば可能だし、これがいいかな?っと思ったわけです(;´Д`) +フレームワークの機能だけで出来るだけ行いたかったということもあります。 か・・・肩透かしでごめんなさいorz
106 名前:97 mailto:sage [2006/08/21(月) 16:02:21 ] いや、enum(>>96 )使うのかよ、というツッコミだったんだがw
107 名前:デフォルトの名無しさん [2006/08/21(月) 16:10:55 ] うぉ!! そういうことか〜!!!!orz 書き間違えてたとは・・・・ おれ自身も苦笑ozr
108 名前:99 mailto:sage [2006/08/21(月) 16:43:18 ] >100 お騒がせしました。 >101 どちらか片方で良いとは思って片方だけを記述したりしても何もならなかったのですが、その記述の仕方はなるほどです…今度試してみます。ありがとうございました!
109 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 17:45:05 ] >>108 結局何がやりたかったのか誰もわからないままでいいのか
110 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 18:17:48 ] >>99 >>Loop Until a <> b 参照型じゃないんだから、これじゃまずいのでは? aとbの値は変わってないし。↓ >>Do >> Label2.Text = Int((52 * Rnd()) + 1) >> Label3.Text = Int((52 * Rnd()) + 1) >>Loop Until a <> b
111 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 18:27:09 ] てか、このスレでやることか?
112 名前:89 mailto:sage [2006/08/21(月) 20:07:04 ] >>99 すまん、そういうことか てっきりTimer1_Tickの中で選びなおすのかと思ってた
113 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 15:34:12 ] VB2005です 同じ種類の繰り返し文ネストから脱出するときはどうすればいいんでしょうか? do do if a=b exit do loop loop これで一番外まで出られますか?
114 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 15:49:21 ] なあ、この板にはVB初心者スレとかVB質問スレとか無いのか?
115 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 15:50:01 ] >>114 質問スレはここだと思うぞw
116 名前:108 [2006/08/22(火) 15:56:59 ] >109-112 1、Button1でタイマースタート。 Label2,Label3に乱数表示開始。 2、Button2でタイマーストップ。Label2,Label3に表示されている乱数をa,bに数値として代入する。 3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。 明らかに滅茶苦茶かもしれませんが、以下を試しても無理でした。 Do Timer1.Enabled = True If Timer1.Enabled = True Then Timer1.Enabled = False End If Loop Until a <> b a,bの値が変わってないと仰るのも、どうしてであるのかよくわからないので、是非ともご教授下さい。 そして、スレ違いのようですので、然るべきスレへのご誘導も宜しくお願いします…
117 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 16:17:25 ] >>116 Rnd()のシードが変わらないからずっと同じ値が帰って来てるんじゃないの?
118 名前:デフォルトの名無しさん [2006/08/22(火) 16:22:34 ] >>116 ここでいい。 ここがお前様を立派な(?)プログラマにしてくれる(はず)。 ・・・ところで試さずに聞くけど乱数ってちゃんと違うものになるか? シード値とか無いと同じタイミングで作られた乱数って同じになるような無いような・・・。 まぁお前様よりドヘタレな俺の与太だから忘れてくれ。
119 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 16:29:09 ] > Timer1.Enabled = True > If Timer1.Enabled = True Then んと
120 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 16:52:46 ] >>116 初めにそれを書けばすぐ解決してたぞ Private Sub Button1_Click() Timer1.Enabled = True End Sub Private Sub Button2_Click() If Label1.Text <> Label2.Text Then Timer1.Enabled = False End If End Sub Private Sub Timer1_Tick() Label1.Text = CInt(Rnd() * 52) Label2.Text = CInt(Rnd() * 52) End Sub
121 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 17:00:41 ] > 3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。 は、そういう意味なの?
122 名前:113 mailto:sage [2006/08/22(火) 17:14:49 ] 質問が意味不明ですか? それともアホすぎる質問なのかな・・・
123 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 17:16:51 ] >>113 は乱数君と同一人物?
124 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 17:19:25 ] >>122 素直に こうしとけば? do do loop until a=b loop until a=b
125 名前:113 mailto:sage [2006/08/22(火) 17:50:58 ] なんだか自分でもわけわからなくなってきたので出直します。 >>123 いや今日から始めたので違います。
126 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 18:08:58 ] >>121 確かにそこを正確に説明しないと伝わらない
127 名前:116 [2006/08/22(火) 18:35:21 ] >117 是非に、詳しい具体策をお教え下さい! >120 コードを書き直して、Int→CIntにもしましたが、同じ数が表示されて思うようにはなりませんでした… 3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。 というのは、単に、結果としてLabel2とLabel3に表示されている数が異なれば良いんです。助けてください…
128 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 19:39:21 ] >>127 >>101 では駄目なの?
129 名前:116 [2006/08/22(火) 19:45:42 ] >118 忘れてました… ちゃんと違う値になる事の方が多いですが、デバックモードはコンピュータがあらゆる場合を試そうと判断しているのか、数回繰り返しているだけで2数が一致したりします(一致するのは1/52の確率です)。
130 名前:デフォルトの名無しさん [2006/08/22(火) 19:52:29 ] 「はぁ〜 プップクプ〜ッ ♪」 ∧_∧ ∧_∧ ∧_∧ (・ ε ・) (・ ε ・) (・ ε ・) ⊂ つ ⊂ つ ⊂ つ (_)`J (_)`J (_)`J 「やれ プップクプ〜 ♪」 ∧_∧ .∧_∧ ∧_∧ ∩ ・ε・ ∩ ∩ ・ε・ ∩ ∩ ・ε・∩ 〉 ノ 〉 ノ 〉 ノ し´ (_) し´ (_) し´ (_) 「 アキヒロ〜音頭で プップクプーの プ♪」 ∧_∧ ∧_∧ ∧_∧ (・ ε ・) (・ ε ・) (・ ε ・) ⊂ つ ⊂ つ ⊂ つ (_)`J (_)`J (_)`J
131 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 20:33:37 ] >>116 >>a,bの値が変わってないと仰るのも、どうしてであるのか aとbは値型でしょ? 参照型ではないから >>Do >> Label2.Text = Int((52 * Rnd()) + 1) >> Label3.Text = Int((52 * Rnd()) + 1) >>Loop Until a <> b これでは、Label2.TextとLabel3.Textの値は変わるけどaとbの値に変動はないんだから、永遠ループに入ると思うんだが。
132 名前:116,127 [2006/08/22(火) 21:11:22 ] >128 >101でもダメでした… >131 Do Label2.Text = Int((52 * Rnd()) + 1) Label3.Text = Int((52 * Rnd()) + 1) a=Val(Label2.Text) b=Val(Label3.Text) Loop Until a <> b もしくは Do Label2.Text = Int((52 * Rnd()) + 1) Label3.Text = Int((52 * Rnd()) + 1) a=Str(Label2.Text) b=Str(Label3.Text) Loop Until a <> b としてみます。 ありがとうございます!
133 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:27:46 ] それよりも、何でラベルのテキストを変更してからそれを変数に取ろうとするの? 普通変数に受けてそれをコントロールに落とそうとしない? オレはコントロールはあくまで人間とのインターフェースだと思ってるけどな
134 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:36:29 ] それよりも彼の場合まずロジックを考えられるようになる方が先決。
135 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:48:05 ] ちょっとした疑問なんだが、 >>Do >>Label2.Text = Int((52 * Rnd()) + 1) >>Label3.Text = Int((52 * Rnd()) + 1) >>a=Str(Label2.Text) >>b=Str(Label3.Text) >>Loop Until a <> b タイマーで乱数まわす意味あるのか? シード設定もしてないようだし。
136 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:07:42 ] そもそも>>120 でやっても >>127 > コードを書き直して、Int→CIntにもしましたが、同じ数が表示されて思うようにはなりませんでした… と、「同じ数が表示された」ってことなんだから、何か根本的に間違ってる/理解していないと思う。
137 名前:89 mailto:sage [2006/08/22(火) 22:26:52 ] >>120 button2押しても止まらないときがあるような・・・ >>135 スロットっぽくしたいんじゃないの? ちなみに俺が言いたかったのは、Timer1_Tickで Do a = CInt((52 * Rnd()) + 1) b = CInt((52 * Rnd()) + 1) Loop Until a <> b Label1.Text = a Label2.Text = b まぁ、選びなおしは停止するタイミングでやった方がいいかもね
138 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:54:52 ] >>137 「同じだったら止まらない」仕様通りでは?
139 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 00:04:39 ] なあ、俺の思い違いだったらいいんだが。 スロットって回転してる間は、別に表示してる値の評価なんてしなく てもいいんでないか? ストップボタンを押した時に、初めて表示さ れてる値を比べて、当たり外れを付けるもんだろ?
140 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 00:06:05 ] 誰が比較して当たり外れを付けろと
141 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 00:17:12 ] 例え確立やタイミング的に大丈夫でもTimer内でLoopは嫌だな。俺は。 それはさておき、 > まぁ、選びなおしは停止するタイミングでやった方がいいかもね を考えてと、質問者のやり方に近い作りにすると、たったこんだけ。効率とか他の仕様とかコーディングポリシーとかは無視して。 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick hoge() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Timer1.Enabled = True End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Timer1.Enabled = False Do Until Me.Label1.Text <> Me.Label2.Text hoge() Loop End Sub Private Sub hoge() Me.Label1.Text = CInt((52 * Rnd()) - 1) Me.Label2.Text = CInt((52 * Rnd()) - 1) End Sub 要は質問の仕方の悪さで長引いただけだと。
142 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 00:52:40 ] ここは 値型と参照型 値の代入と参照の代入 の区別がつかないヒドイ言語ですね どうしてこのような言語仕様になっているか エロイ人教えてください。
143 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 01:06:29 ] 何処の受け売り?
144 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 01:22:48 ] >>142 またC++の悪口か
145 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 01:36:58 ] ところでスロットを作りたいのでなければ何を作りたかったのだろうか
146 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 08:30:41 ] > スロットを作りたいのでなければ 同じ数値を排除したいって言ってるので最初っからスロットなんて考えられないのに。
147 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 09:41:41 ] >>84 でスロットという言葉が出ているんで仕方ないんでないか?
148 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 10:23:10 ] 絶対に当たらないスロットを作って稼ごうとしたのでは
149 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 10:59:17 ] Datagridviewをコード内で作成したDataTableにバインドして利用しようとしています。 データを表示するまでは可能なのですが、DataTableにデータを追加してもDatagridviewが更新されないで 表示が固まってしまいます。再描画?か何かが必要なのだと想像するのですが、分かりませんでした。 InvokeとかBackgroundworksなどを使うと良いとはあったのですが、理解できませんでした。 どのように処理すれば良いのでしょうか?よろしくお願いします。 (こんな感じのコード) Dim ds as Dataset Dim dt as Datatable Dim bind1 As BindingSource Sub form1_load() Handles MyBase.Load ds.Tables.Add(dt) dt.Columns.Add("column1", GetType(String)) (以下略) bind1.DataSource = dt Datagridview1.DataSource = bind1 End Sub Sub test() Dim Row as DataRow Row = dt.NewRow Row(0) = "a" Row(1) = "b" dt.Rows.Add(Row) End Sub
150 名前:デフォルトの名無しさん [2006/08/23(水) 11:50:22 ] テキストファイル読み込みは textfieldparserとstreamreaderどっちを使ったらいいの?
151 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 12:35:59 ] 読んで字の如く
152 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 12:55:37 ] >>150 中身による。