Итак, я работал над созданием игры, и решил, что мне нужна небольшая программа, показывающая файл, в котором каждый персонаж заменяется байтовым эквивалентом для работы с сохранением кода и так далее.Подумал, что это простоя.Три часа спустя я ломал голову, пытаясь понять это.
Когда я загружаю небольшой (или, может быть, короткий, лучше термин) файл, он выглядит как окно сверху.Когда я загружаю файл большего размера, он выглядит как окно внизу.
http://dl.dropbox.com/u/16985121/Images/ViewAsBytes.PNG
Это 10pt Courier New, но, похоже, это происходит с любым шрифтом, который я пробую.Всегда есть этот дополнительный столбец, и если для этого столбца не хватит места, он просто втиснется во все, что мог, в это пространство, которое ранее не использовал.Я пытался настроить всевозможные переменные, а также сравнивать текстовое поле до и после добавления текста из файла (который читается в байтах из FileStream и затем подается в StringBuilder), но, похоже, ничего не меняетсяхотя что-то явно отличается.
Я могу придумать для этого несколько разных обходных путей, но теперь меня больше интересует, что TextBox думает именно так, чем выполнение моей программы.У кого-нибудь есть идеи?
Вот код, который считывает данные и помещает их в текстовое поле:
FileStream stream = new FileStream(files[0], FileMode.Open);
StringBuilder sb = new StringBuilder();
int byteIn = stream.ReadByte();
while (byteIn != -1)
{
sb.Append('[');
if (byteIn < 100)
sb.Append('0');
if (byteIn < 10)
sb.Append('0');
sb.Append(byteIn.ToString());
sb.Append(']');
byteIn = stream.ReadByte();
}
txtView.Text = sb.ToString();
stream.Close();