現在C#にてアプリを作っています。
そこで、フォーム上にあるボタンを押している間は
ある画像のスクロールさせる処理を行いたいのですが、
どういったイベント等の方法で行えばよいか教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Clickのイベントではなく、MouseDownとMouseUpの


イベントを利用すると良いと思います。

スクロールの処理については、別スレッドでやると
良いでしょう。

この説明だけでは分かり難いと思いますので、
サンプルプログラムを作ってみました。

C#のコードは、ほとんど書いた事が無いので、
あやしいところもあるかもしれませんが、
一応、参考までに・・・。
(サンプルは、参考URLからダウンロード出来ます。)

参考URL:http://psv.servehttp.com/programming_folder/win/ …
    • good
    • 0
この回答へのお礼

回答していただいてありがとうございます。しかもサンプルまでいただいて大変嬉しいです。サンプルを参考に作ってみたいと思います。またよろしくお願いいたします。

お礼日時:2005/04/02 22:34

こんにちは、じゃんぬねっと です。



MouseDown ~ MouseUp までスクロール処理を実装するだけでしょう。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q英語で「2012年の5ヶ月間」と書きたい

「2012年の5ヶ月間、私は日本を一周した」と英語で書きたいのですが、「2012年の5ヶ月間」というのは英語でどのように書けば良いのでしょうか?

Aベストアンサー

「2012年の5ヶ月間」は「five months in 2012」と言えます。

元の文を自然に意訳するなら、

I spent five months traveling around Japan in 2012.

とするのが良いと思います。

QC#:ListViewでのスクロールイベントの取得について

.Net2003 C# にてアプリを作成しています。
.Netを始めて初心者です。(プログラミング経験も浅いです)

ListView1とListView2を作成して、
ListView2がスクロールしたら、ListView1も同じくスクロールさせる
と言ったListViewのスクロールの同期化処理を行いたいのですが、
ソースコードが思いつきません。
ListViewのイベント、プロパティにはスクロール情報を取得するモノが
みつかりませんでした。

現在は下記サイトを参考にさせて頂き、スクロールイベントの発生をキャッチする所までは
なんとかたどり着いたのですが、ここからどうやって
ListView1にスクロール同期化をさせるコードを書いていいのかが
思いつきません。

何か参考になるHPや、コードがありましたら教えてください。

http://dobon.net/vb/dotnet/control/firescrollevent.html
から以下コードを参考にしました。
protected override void WndProc(ref Message m)
{
const int WM_HSCROLL = 0x114;
const int WM_VSCROLL = 0x115;

switch (m.Msg)
{
case WM_HSCROLL:
Console.WriteLine(
"水平スクロールバーがスクロールされました。");
break;
case WM_VSCROLL:
Console.WriteLine(
"垂直スクロールバーがスクロールされました。");
break;
}
base.WndProc(ref m);
}

.Net2003 C# にてアプリを作成しています。
.Netを始めて初心者です。(プログラミング経験も浅いです)

ListView1とListView2を作成して、
ListView2がスクロールしたら、ListView1も同じくスクロールさせる
と言ったListViewのスクロールの同期化処理を行いたいのですが、
ソースコードが思いつきません。
ListViewのイベント、プロパティにはスクロール情報を取得するモノが
みつかりませんでした。

現在は下記サイトを参考にさせて頂き、スクロールイベントの発生をキャッチする所までは
なんとか...続きを読む

Aベストアンサー

>スクロール量を取得する方法あるのでしょうか?

WM_HSCROLL、WM_VSCROLLが送られてきたときのwParamやlParamの中。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarmessages/wm_vscroll.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarmessages/wm_hscroll.asp

Qもし、“1年間で英語をモノにしろ”と言われたらどうしますか?

ゴルファーの石川遼選手、英語で会見を行っていますが独学でマスターしたそうですね。
あれを見ていて、すごく立派だと思います。

さて、“1年間で英語をモノにしろ”と言われたら、どんな方法で英語を身に付けますか?
英会話教室ですか?
英語の教材ですか?
1年間の留学ですか?
外人を友達にして個人レッスン?・・・

絶対にできそうなのは、どれですか?

Aベストアンサー

『日常英会話パーフェクトブック』(ベレ出版)のような
一冊の本でたくさんの日常会話フレーズが出ているCD付きの本で
繰り返し聞きフレーズをひたすら頭に叩き込んで体で覚えます。

後は洋画を英語のフレーズを意識しながらたくさん観たり、
出来るだけたくさんの洋楽をカラオケのレパートリーに出来るように練習するなど
考え得る限りの方法で日頃から英語に触れ、英語の感覚を磨けるようにします。

日本語の日常会話もどこかで聞いたり読んだりした言葉を覚えてしゃべれるようになったように思います。
それならば英語もフレーズをたくさん聞いて体で覚える事でしゃべれる様になるんじゃないかな?と思います。

QC#でボタンを押したら入力された内容を出力されるプログラム

C#でボタンを押したら入力された内容を出力されるプログラムを作りたいと思ってます。簡単な勤怠入力プログラムを考えてます。
出勤可能な曜日にチェックをして、希望の出勤時間と退勤時間を入力し登録ボタンを押すと結果が出力されるのを作りたいと思ってます。
チェックリストにチェックされてなくて時間入力された所は無効にするのもほしいです。
いくつかサイトを見てるのですがなかなか良いのが見つかりません。
参考のサイトやアドバイスお願いします。

Aベストアンサー

自分が作りたいものと同じ(あるいは似ている)サンプルコードが見つかる可能性は極めて低いです。プログラムは無数の組み合わせがありますから。。。ネットのサンプルの多くが単一的な機能の事例でしかないのはそのためです。
プログラミングには、目的を達するためにどのような手順で処理をすればよいか、という道筋を自分で組み立てる技量が必要です。

今回の場合、次に挙げる事項が理解できていればよいかと。

・チェックボックスの値の取得はCheckedプロパティ
・チェックボックスの変化はCheckedChangedイベント
・コントロールの有効化・無効化はEnabledプロパティ
・コンボボックスの選択項目の取得はSelectedItemプロパティやSelectedIndexプロパティ
・コンボボックスの変化はSelectedIndexChangedイベント

あとはこれらの部品を目的の動作になるように組み合わせてください。個々の部品の使い方がわからなければ、個別に検索してみるとよいと思います。

Q短期間で、効率の良い英語学習方法を教えて下さい。

外資系の会社に入社2年目の40代。
部署が英語をあまり使用しなかったため、外資系なのに
全然、英語がダメです。
会社が買収され、急に英語の報告物や電話が多くなりました。
上司にも、英語を頑張るようにと言われました。

会話だけでなく、文章の読み書きも出来るようになりたいです。
それも、出来るだけ短期間で・・・
効率の良い学習方法を教えて下さい。

Aベストアンサー

アメリカに38年住んでいる者です。 私なりに書かせてくださいね。

短期間で、、、、ではなく、どれだけ自分のものにするか、を考えてください。 仕事に「使う」のですからこれほど「意味のある」目的はないと思います。 試験の為に(意味のある資格習得は除いて、つまり意味のない資格習得ではなく)勉強するのではなく、自分の為に(教材購入ではなく)自分が毎日少し筒「物にする」と言う事なのです。

3ヶ月で、3年で、30年で、300年で英語をマスターしよう、というのではなく、毎日自分を向上させていく、と言う事なのです。

一番手っ取り場合方法は、「今日始める」のです。 今日始めることは明日始めるより一日早く習得できるわけですね。

今日始める、と言う事は、今日文法参考書を買い求め勉強を始めるということではありません。 仕事の上で「何が自分に一番弱い」と感じさせそして一番仕事上負担になっているか、使えないのか、を今日考えるということです。

バインダーをひとつ作って、何が自分にとって「身につける」執拗のあるものなのかを詳しいことを考えずにまず羅列するのです。

分類も整理もする必要はありません。 とにかく書き出すのです。 例として、

電話会話
取次ぎ
書類
フィーリング表現
スペル
発音
LとR
日常単語
専門用語

のように重複してもいいからとにかく書き出すわけです。 ほとんどの人が何か向上させたいと思っても現実的にはっきりしていないということが多い過ぎるのです。 これによって、頭の中でもやもやしたものを取りぬき、書く事によってその事はいったん忘れてしまうことが出来るわけです。 することは、考えることではなく、リストアップすることによって、自分の弱点と思われる項目、向上させる必要があると思われる項目をどんどん「整理する為の」データを集めることから始めるわけです。

小さなノート(紙切れでもいいのです、古い名詞でもいいです)をいつも持ち歩き思いついた弱点を書くのですね。 通勤中でも、トイレの中でもそしてノートを風呂場にも持っていく心構えでリストアップすることが効率よく身につける準備でもあるし、効率よく自分のものにするための「初期訓練」「初期洗脳」でもあるわけです。

初期、と書きましたね。 今日は初期なのです。 文法書を開いて勉強し始めることは「初期ではない」のです。 

リストアップしてから今度は整理です。 一項目に関して具体的にその中で何が必要なのか、ということです。 発音と言う項目では

発音:
L&R
TH
O
リエゾン
イントネーション
真似をする
DVDを使う
聞き取り

などと書くわけです。

ここでお気づきになったと思いますが、L&Rを身につける、と言う部分とDVDを使うという部分がありますね。 目的と方法が同じ項目に混じっているわけです。 でもいいのです。 整理といってもまだ、思いついたまま書いているだけなのですから。 

また、聞き取りと言う表現を発音の項目に入っていますね。 いいのです、発音と聞き取りがつながっていると思うから含めたのであるわけで、電話会話と言う項目にも入ることも十分考えられるわけです。

今の時点ではあまりにも取り留めのないことをしていると感じるかもしれませんが、頭の中で整理するより紙の上ですることでより考えが集中するのです。

人によって、もちろん、かなり違ったリストが出来上がることになります。

上司の方は「がんばれ」というだけで具体的にはいってくれていませんね。 上司の方から何が必要なのか具体的なアドバイスを聞くこともこのリストアップの中に入れてもいいと思いますよ。 また、ボイスレコーダーの購入、onelook.comをお気に入りに入れる、音声ファイルのスピードを落として聞ける無料のNV Playerをダウンロードする、などもリストの中に入れてもいいですね。

そして、さらに、このカテの過去の質問を読み始める事も大変いいことだと思います。 (なぜか、自分では答えているのに他のサイトを紹介する人がいますがこのカテでも結構すばらしい回答をしているわけですから紹介してもいいと思うのですが。 ここのカテでは、一般的な「参考書的説明」の総合サイトと違い、ある特別の状況での問題点もあげられていますし、いろいろな人の違ったコメントも読めるわけです。 (どれが自分にあっているのかを判断することにはなりますが、結局それはそれなりに自分のためになることだと思います)

そして、最後に、非常に大切なことですが、これらをやることにどう「自分の得」になるかを書くのです。 自己向上で一番の敵はお金でも時間でも上司でも仕事でも恋人でもないのです。 いちばんの敵は「自分」なのです。 それは何かと言うと、挫折してしまう自分、意欲がなくなる自分、継続力の不足、モチベーションの不足、満足感を感じる必要があると思う自分、向上とは目に見えなくてはならないという甘える自分、なのです。 

初心忘れるべからず、継続は力なり(継続をすることで力となう、と言う意味と、継続させていく能力と言う意味)など日本語にはすばらしいアドバイスがあるのです。 「今もっている初心」を忘れてはなりません。 継続させていくことが自分が今もっている初心を持ち続けるということでありそれが直接自分に必要な英語力を持つということが実際に起こる方向へもって行くのです。

その継続させていく為にも、頭の中で漠然と考えるのではなく、はっきり「目に見えるように」「これらをやって何が自分の特になるか」を書き出すわけです。

この事に気がつかないでとにかくやればいいと考えている人が本当に多いと思います。 もちろんやるのです。 でも自分を知らないままがむしゃらにやるのは「効率よく」ということには決してつながりません。 場合によっては逆効果にもなるのです。

よって、

自己満足につながる、
人生に悔いを感じさせない
異性の持てるようになる
仕事が出来るというイメージが出る
仕事が出来る
上司に認めてもらえる
昇給につながる
昇格につながる
昇給でxxxが買える
惨めさを感じる必要がなくなる
子供からの尊敬される
海外に行ってもより楽しめる
など、誰にも見せる必要がないわけですから、何でもいいのです。 路上で外人さんに道を教えることが出来自慢になる、などでもいいのです。 外人の恋人が出来る、でもいいのです。 とにかく、自分にとって「英語が出来ることでうれしくさせるもの」をリストアップするわけですね。 

そして、上に書いた「やるべきこと」に順位をつけるのです。 何が一番自分にとって(自分がやりたいからではなく、趣味ではなく、仕事を言う周りが理由なのです)まず身につけなくてはならない事から順位をつけていくのです。 あるものは簡単に始められるものかもしれませんし、あるものは準備が必要かもしれません。 しかし、大変だと思ってもトップに必要と感じることであれば「やらなくてはならない」のですね。

では私の個人的コメントです。

文法書はあくまでも参考書として扱うことです。 文法の問題集なんて必要ないです。 とにかく仕事の為の英語力、使える英語の習得なのです。 

毎日今日から6週間はこのことだけ(必要な英語力を付ける事)だけを四六時中(4x6=24、24時間ですね。)を上手に使って、考え、そして休みをとり、また考え、休みをとるのです。 自分でシナリオ状況を考える、事もひとつですね。 電話がかかってきたら、そんな表現を使ったらいいのか、などです。 分からなかったらこのカテをフルに使うことです。

なにか、私自身も取り留めのないことを書いてしまった観がありますが、行動に移す前の自分の弱点、自分の目的、をはっきりさせ、自分のこれからの心構えを死ぬまで自分を向上させるために今日を始めて欲しいという願いから書かせてもらいました。

これでいかがでしょうか。 分かりにくい点がありましたら、補足質問してください。 

アメリカに38年住んでいる者です。 私なりに書かせてくださいね。

短期間で、、、、ではなく、どれだけ自分のものにするか、を考えてください。 仕事に「使う」のですからこれほど「意味のある」目的はないと思います。 試験の為に(意味のある資格習得は除いて、つまり意味のない資格習得ではなく)勉強するのではなく、自分の為に(教材購入ではなく)自分が毎日少し筒「物にする」と言う事なのです。

3ヶ月で、3年で、30年で、300年で英語をマスターしよう、というのではなく、毎日自分を向上させてい...続きを読む

QC(C++) コントロール(ボタン)の制御 ボタン1押したらボタン2が使用不可に・・・その逆も。。。

はじめまして。

回りに聞ける人がいなくて困ってます。

C(C++)でフォームにボタンを設置し、任意のボタンを押したら、他のボタンが押せなくなるように、
もう1回押したら、他のボタンが押せるように戻るっていう感じの制御をしたいのですが、書き方が分かりません。

分かる方、記述例をつけて教えて頂けると助かります。お願いします。

Aベストアンサー

こんんちは

ボタン1を押したらボタン2の有効/無効を最クリックに切り替えると言ううことでよね?
ボタン1が押されたときのハンドラのみ記述します。
参考にしてみてください。

有効=ボタンが押せる状態
無効=ボタンが押せない状態

void CMyDlg::OnButton1()
{
CButton*pBtn = (CButton*)GetDlgItem(IDC_BUTTON2);

// ボタン2が有効か無効かをチェック
if( pBtn->IsWindowEnabled() ){
// 有効なら無効にする
pBtn->EnableWindow(FALSE);
} else {
// 無効なら有効にする
pBtn->EnableWindow(TRUE);
}

}

Q「子育てなんて今思えばあっという間に過ぎる」を英語で言うと

「子育てなんて今思えばあっという間に過ぎる」を英訳するとなんとなるのでしょうか?

この場合の"あっという間に"を英語でなんと言えばいいのか分かりません。

Aベストアンサー

「子育てなんて今思えばあっという間に過ぎる」

正統派
1) When you recall your hard days of child-raising, you would say the time passed so quickly, leaving no single days to worry this and that.

簡略版(意訳しています)
2) The days of child-raising run so quick and hard, you have no time to worry this and that.

QC#のフォームにて

C#のフォームにて

お世話になります。C#のフォームにて
labelに現在の年度を自動で読み取って”2010年度”と
表示させたいのですがうまくいきませんでした。
どなたかご親切な方、お教え頂きたく宜しくお願い致します。

Aベストアンサー

>int nendo;
>if(now.Month >= 4)
>nendo = now.year - 1;
>label1.Text = nendo.ToString() + "年度";

if文に入らない場合nendoの値が初期化されていません。
通常のC言語等だとnendoの値がゴミのままでもそれを値として処理しますが、C#のint型の実態はクラスなので、初期化の有無を判別しているようです。

else文で代入するか、

int nendo = now.Year;

と初期化しておく必要があります。

ちなみに、このソース、if文が間違ってますけど、気付いてますか?

Q英語で1時間の講義は、独語で1時間半かかりますか?

英語を独語に翻訳すると、一般に文章の長さがかなり長くなります。例えば、1.5倍くらいになるのではないでしょうか?

もし、そうだとすると、英語で1時間かかる講義は、独語では、1時間半かかるのでしょうか?

Aベストアンサー

文章にして少し長くなっても、ヨーロッパ語を比べる時は、講義の長さはほとんど差がないと考えて差し支えありません。個人差はありますが。それは、この語族は重要な語句でないところは(冠詞など)はほとんど発音しないので差がでません。日本語と英語などを比べるとかなり差があると考えられます。日本文化は話すにしても、日本舞踊、雅楽、能などゆっくりが上品との伝統があります。しかし、日本語は省略(主語など)が多いので、英語と日本語の講義を比べても事実上はほとんど差がないと考えてよいでしょう。

QVCにてメニューボタン押したときにイベントの発生

ただいま以下のことで困っています。

VCにて開発をしているのですが
メニューボタンを押したときにイベントを起こしたいのですが
プロパティ>ポップアップのチェックをはずす方法ではメニューが表示されなくなってしまいます。

メニューを表示させつつイベントを発生させる方法は無いでしょうか?

宜しくお願いします。 orz

Aベストアンサー

>VCにて開発をしているのですが

SDKでですか?MFCでですか?

>メニューボタンを押したときに
メニューボタンとはなんですか?
メニューのことですか?


>というのはどのタイミングをさすのでしょう?

メニューの親項目をクリックして配下のポップアップメニューが表示されるときですか?
ということでしたらWM_INITMENUPOPUPのタイミングでしょう。


人気Q&Aランキング

おすすめ情報