基本的に...ユーザーがフレンドリクエストを受け入れるか拒否すると、ユーザーの名前を削除するはずですが、受け入れ、拒否しますが、ユーザーの名前とリジェクトボタン。わかりません。コード:C#このボタンが削除されない理由はわかりません
private void loadFriendRequests()
{
using (SqlConnection connection = new SqlConnection(con))
{
using (SqlCommand cmd = new SqlCommand(@"Select IDRequest, UserFirstName, UserLastName, FriendEmail From PendingRequests Where FriendEmail = @fe", connection))
{
connection.Open();
cmd.Parameters.AddWithValue("@fe", Properties.Settings.Default.Email);
using (SqlDataReader dr = cmd.ExecuteReader())
{
int i = 0;
while (dr.Read())
{
i++;
foreach (object request in i.ToString())
{
Label userName = new Label();
Button accept = new Button();
Button reject = new Button();
accept.Text = "Accept";
reject.Text = "Reject";
int idRequest = Convert.ToInt32(dr["IDRequest"]);
userName.Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(dr["UserFirstName"].ToString() + " " + dr["UserLastName"].ToString());
userName.Tag = idRequest;
accept.Tag = idRequest;
reject.Tag = idRequest;
accept.Click += Accept_Click;
reject.Click += Reject_Click;
friendRequestPanel.Controls.Add(userName);
friendRequestPanel.Controls.Add(accept);
friendRequestPanel.Controls.Add(reject);
}
}
}
}
}
Requests.Start();
}
private void Reject_Click(object sender, EventArgs e)
{
Button c = sender as Button;
int idRequest = Convert.ToInt32(c.Tag);
var ctrls = friendRequestPanel.Controls
.Cast<Control>()
.Where(x =>
Convert.ToInt32(x.Tag) == idRequest);
foreach (Control ct in ctrls)
{
friendRequestPanel.Controls.Remove(ct);
ct.Dispose();
}
updateFriendRequestDatabase(2);
}
private void Accept_Click(object sender, EventArgs e)
{
Button c = sender as Button;
int idRequest = Convert.ToInt32(c.Tag);
var ctrls = friendRequestPanel.Controls
.Cast<Control>()
.Where(x => x.Tag != null &&
Convert.ToInt32(x.Tag) == idRequest);
foreach (Control ct in ctrls)
{
friendRequestPanel.Controls.Remove(ct);
ct.Dispose();
}
updateFriendRequestDatabase(1);
}
画像:GUIいずれかのボタンがクリックされ
:GUI
は、なぜそれがボタンを '受け入れる' の削除されていませんか?
あなたが実際にコードにブレークポイントを置き、どこ期待が失敗している見ることによって強化している。..最初のあなたができることを行ってくださいあなたが投稿したすべてのコードに基づいてこれをあなたのためにコードレビューすることを期待してください。 – MethodMan
"ここに私のコードはありますか" – LaneL
合意。私が自分自身に尋ねた最初の質問は、「OPは彼自身のコードをデバッグしたのですか?あなたの受け入れボタンは 'ctrls'列挙体ですか? – Amy