C#からVB.NET、またはVB.NETからC#のコードに変換するには、Code Converterがとても優秀です。
いくつか実際のコードで試したところ、変換後のコードで問題なく動作しました。
お試しください。
C#からVB.NET、またはVB.NETからC#のコードに変換するには、Code Converterがとても優秀です。
いくつか実際のコードで試したところ、変換後のコードで問題なく動作しました。
お試しください。
設定
//セルをクリックしただけで、入力カーソルを有効にする dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; //複数選択不可 dataGridView1.MultiSelect = false; //セル選択ではなく、行全体選択 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //一部の列を編集不可にする dataGridView1.Columns[1].ReadOnly = true; //ヘッダ列をクリックした際の並び替え禁止 foreach (DataGridViewColumn c in dataGridView1.Columns) c.SortMode = DataGridViewColumnSortMode.NotSortable; //ボタンの背景色が白くなってしまうのを防ぐ DataGridViewCellStyle cellStyle = new DataGridViewCellStyle(); cellStyle.BackColor = SystemColors.Control; //ボタンの標準色を設定 Column3.DefaultCellStyle = cellStyle;
値取得
//選択された行のセル値取得 if (dataGridView1.SelectedCells.Count > 0) { int columnIndex = dataGridView1.SelectedCells[0].ColumnIndex; //選択列 int rowIndex = dataGridView1.SelectedCells[0].RowIndex; //選択行 string cellValue = ""; if (dataGridView1[columnIndex, rowIndex].Value != null) { cellValue = dataGridView1[columnIndex, rowIndex].Value.ToString(); //該当セルの値 } }
セルを抜けなくてもCellValueChangedイベントを発生させる
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e) { if (dataGridView1.IsCurrentCellDirty) { //確定させる→セルを抜けなくてもCellValueChangedイベントが発生する dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); } }
LINEグループのアルバムに写真を投稿しようとして、写真を選択すると「この写真は破損しているため表示できません」と表示され、投稿できなかった。 続きを読む 【LINE】「この写真は破損しているため表示できません」と表示され、投稿できない
(随時追記中・・・)
SHARP SHL25(Android5.0.2)にて、プッシュ通知が来なくなる問題が発生。 続きを読む 【Android】プッシュ通知が来ない場合の対処方法
ボタン押下時の処理にて、以下のような要件を想定したサンプルです。
(.NET Framework4.5.1利用)
開始
↓
A処理
↓ ↓
B処理 C処理 ※
↓ ↓
D処理
↓
終了
※ここだけ並行処理可能なので、マルチスレッド化したい。
using System; using System.Threading.Tasks; using System.Windows.Forms; namespace AsyncSample { /// <summary> /// async/awaitの利用サンプル /// </summary> public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// ボタン押下時に並行実行可能な処理をマルチスレッドで実行する /// ※private void → private async void に変更 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void button1_Click(object sender, EventArgs e) { Console.WriteLine("最初に行う処理。これが終わるまではMainSampleは呼び出されない。"); //マルチスレッド処理(awaitを付けて、メソッド内の処理が終わるのを待っている) await MainSample(); Console.WriteLine("最後に行う処理。MainSampleが終わった後に呼び出される。"); } /// <summary> /// 並行実行可能な処理 /// ※private void → private async Task に変更 /// </summary> /// <returns></returns> private async Task MainSample() { //task1の実行を開始 Task<string> task1 = Dummy(5, "task1"); //task2の実行を開始 Task<string> task2 = Dummy(1, "task2"); //task1とtask2の実行が終わるまで待つ await task1; await task2; //それぞれのtaskの戻り値を取得 Console.WriteLine("task1の戻り値:" + task1.Result); Console.WriteLine("task2の戻り値:" + task2.Result); } /// <summary> /// 複数の引数を受け取り、処理結果を戻り値として返す /// ※private void → private async Task<string> に変更。戻り値が不要の場合は、private async Task にする。 /// </summary> /// <param name="i"></param> /// <param name="s"></param> /// <returns></returns> private async Task<string> Dummy(int i, string s) { Console.WriteLine("処理開始:" + i); string dummyText = await Task.Run(() => { //何らかの重い処理・・・ System.Threading.Thread.Sleep(1000 * i); return s + "の処理完了:" + DateTime.Now.ToString(); }); Console.WriteLine("処理完了:" + i); return dummyText; } } }