Я создаю приложение чата, и я хочу отображать имена в Полужирный. Когда форма первая загрузка, я отображение истории разговора из базы данных в элементе управления RichTextBox
с использованием этих строк коды, и я хочу, чтобы отобразить имя шрифта:Почему эти строки кода не работают так, как ожидалось?
Вот весь код, чтобы сделать это возможным:
string strProvider = "Data Source=" + srv_host + ";Database=" + srv_db + ";User ID=" + srv_user + ";Password=" + srv_pass;
MySqlConnection myConn = new MySqlConnection(strProvider);
try
{
myConn.Open();
string strCmd = "SELECT * FROM comments WHERE [email protected]_id AND (([email protected] AND [email protected]) OR ([email protected] AND [email protected])) ORDER BY at_time ASC";
MySqlCommand myCmd = new MySqlCommand(strCmd, myConn);
myCmd.Parameters.AddWithValue("from", frm_usr);
myCmd.Parameters.AddWithValue("to", to_usr);
myCmd.Parameters.AddWithValue("task_id", tid);
myCmd.ExecuteNonQuery(); // execute now
MySqlDataReader dr = myCmd.ExecuteReader();
while (dr.Read())
{
string text = dr.GetValue(1).ToString() + ": " + dr.GetValue(6) + Environment.NewLine;
richTextBox1.AppendText(text);
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = dr.GetValue(1).ToString().Length;
richTextBox1.SelectionFont = new Font(richTextBox1.Font,FontStyle.Bold);
}
myConn.Dispose();
}
catch (Exception E) { MessageBox.Show(E.Message); }
И эти строки кода, который не работает, как ожидалось:
while (dr.Read())
{
string text = dr.GetValue(1).ToString() + ": " + dr.GetValue(6) + Environment.NewLine;
richTextBox1.AppendText(text);
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = dr.GetValue(1).ToString().Length;
richTextBox1.SelectionFont = new Font(richTextBox1.Font,FontStyle.Bold);
}
Edit:
dr.GetValue(1).ToString()
Удерживает полное имя пользователя dr.GetValue(6).ToString()
Удерживать сообщение
Проблема с приведенным выше кодом заключается в том, что он отображает только первое имя в жирном, но другие строки не затрагиваются. См. Изображение
Может кто-нибудь, пожалуйста, объясните причину, по которой код не работает. Я не мог понять, где ошибка.
Thank-you
Какие рамки? WPF или Winforms Edit: Nevermind, я вижу его winforms –