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


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

VB.NET質問スレ (Part17)



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
中身による。






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

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

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